summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rwxr-xr-x[-rw-r--r--]indra/linux_crash_logger/llcrashloggerlinux.cpp6
-rwxr-xr-x[-rw-r--r--]indra/linux_crash_logger/llcrashloggerlinux.h1
-rw-r--r--indra/llcommon/llinstancetracker.h10
-rwxr-xr-x[-rw-r--r--]indra/llcrashlogger/llcrashlogger.cpp7
-rwxr-xr-x[-rw-r--r--]indra/llcrashlogger/llcrashlogger.h3
-rwxr-xr-x[-rw-r--r--]indra/llmessage/llcurl.h0
-rw-r--r--indra/llui/llcommandmanager.cpp9
-rw-r--r--indra/llui/llcommandmanager.h23
-rw-r--r--indra/llui/lldockablefloater.cpp7
-rw-r--r--indra/llui/llfloater.cpp69
-rw-r--r--indra/llui/llfloater.h8
-rw-r--r--indra/llui/llfloaterreg.cpp9
-rw-r--r--indra/llui/llkeywords.cpp81
-rw-r--r--indra/llui/llkeywords.h33
-rw-r--r--indra/llui/lllayoutstack.cpp17
-rw-r--r--indra/llui/lllayoutstack.h13
-rw-r--r--indra/llui/lltabcontainer.cpp20
-rw-r--r--indra/llui/lltoolbar.cpp55
-rw-r--r--indra/llui/lltoolbar.h4
-rw-r--r--indra/llui/llview.cpp6
-rw-r--r--indra/llui/llview.h2
-rw-r--r--indra/llxuixml/llinitparam.h4
-rw-r--r--indra/llxuixml/llxuiparser.cpp89
-rwxr-xr-x[-rw-r--r--]indra/mac_crash_logger/llcrashloggermac.cpp1
-rw-r--r--indra/newview/CMakeLists.txt9
-rw-r--r--indra/newview/app_settings/commands.xml2
-rw-r--r--indra/newview/app_settings/keywords.ini4
-rw-r--r--indra/newview/app_settings/settings.xml37
-rw-r--r--indra/newview/character/avatar_lad.xml21
-rwxr-xr-x[-rw-r--r--]indra/newview/featuretable.txt0
-rw-r--r--indra/newview/installers/windows/lang_ru.nsibin7542 -> 7598 bytes
-rw-r--r--indra/newview/installers/windows/lang_tr.nsibin7542 -> 7722 bytes
-rw-r--r--indra/newview/installers/windows/lang_zh.nsibin5824 -> 5824 bytes
-rwxr-xr-xindra/newview/llagent.cpp19
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewer.cpp42
-rw-r--r--indra/newview/llcallfloater.cpp9
-rw-r--r--indra/newview/llcallfloater.h7
-rw-r--r--indra/newview/lldebugview.cpp9
-rw-r--r--indra/newview/lldebugview.h1
-rw-r--r--indra/newview/llfloaterabout.cpp3
-rw-r--r--indra/newview/llfloatercamera.cpp3
-rw-r--r--indra/newview/llfloaterhud.cpp8
-rw-r--r--indra/newview/llfloaterinventory.cpp9
-rw-r--r--indra/newview/llfloaterinventory.h1
-rw-r--r--indra/newview/llfloatermap.cpp3
-rwxr-xr-xindra/newview/llfloaterpreference.cpp9
-rw-r--r--indra/newview/llfloaterpreference.h1
-rw-r--r--indra/newview/llfloatersounddevices.cpp3
-rw-r--r--indra/newview/llfloatertoybox.cpp6
-rw-r--r--indra/newview/llfloatertoybox.h1
-rw-r--r--indra/newview/llfloatertranslationsettings.cpp296
-rw-r--r--indra/newview/llfloatertranslationsettings.h76
-rw-r--r--indra/newview/llglsandbox.cpp8
-rw-r--r--indra/newview/llhudeffectblob.cpp8
-rw-r--r--indra/newview/llhudeffectblob.h2
-rw-r--r--indra/newview/llnearbychat.cpp7
-rw-r--r--indra/newview/llnearbychatbar.cpp25
-rw-r--r--indra/newview/llpanelteleporthistory.cpp73
-rw-r--r--indra/newview/llteleporthistory.cpp9
-rw-r--r--indra/newview/llteleporthistory.h3
-rw-r--r--indra/newview/llteleporthistorystorage.cpp1
-rw-r--r--indra/newview/llteleporthistorystorage.h6
-rw-r--r--indra/newview/lltoastnotifypanel.cpp2
-rw-r--r--indra/newview/lltoolbarview.cpp180
-rw-r--r--indra/newview/lltoolbarview.h16
-rw-r--r--indra/newview/lltoolmgr.cpp42
-rw-r--r--indra/newview/lltracker.cpp4
-rw-r--r--indra/newview/lltranslate.cpp357
-rw-r--r--indra/newview/lltranslate.h296
-rw-r--r--indra/newview/llviewerfloaterreg.cpp2
-rw-r--r--indra/newview/llviewermenu.cpp8
-rw-r--r--indra/newview/llviewermessage.cpp13
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerobject.cpp0
-rw-r--r--indra/newview/llviewerwindow.cpp2
-rwxr-xr-x[-rw-r--r--]indra/newview/llvovolume.cpp0
-rw-r--r--indra/newview/llwind.cpp115
-rw-r--r--indra/newview/llwind.h7
-rw-r--r--indra/newview/pipeline.cpp5
-rw-r--r--indra/newview/pipeline.h2
-rw-r--r--indra/newview/skins/default/xui/da/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_about.xml5
-rw-r--r--indra/newview/skins/default/xui/de/floater_about_land.xml6
-rw-r--r--indra/newview/skins/default/xui/de/floater_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_camera.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_chat_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/de/floater_destinations.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_fast_timers.xml10
-rw-r--r--indra/newview/skins/default/xui/de/floater_how_to.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_map.xml4
-rw-r--r--indra/newview/skins/default/xui/de/floater_model_preview.xml376
-rw-r--r--indra/newview/skins/default/xui/de/floater_model_wizard.xml122
-rw-r--r--indra/newview/skins/default/xui/de/floater_moveview.xml6
-rw-r--r--indra/newview/skins/default/xui/de/floater_my_appearance.xml4
-rw-r--r--indra/newview/skins/default/xui/de/floater_my_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_object_weights.xml28
-rw-r--r--indra/newview/skins/default/xui/de/floater_outfit_save_as.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_people.xml7
-rw-r--r--indra/newview/skins/default/xui/de/floater_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_places.xml4
-rw-r--r--indra/newview/skins/default/xui/de/floater_sound_devices.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_stats.xml14
-rw-r--r--indra/newview/skins/default/xui/de/floater_tools.xml11
-rw-r--r--indra/newview/skins/default/xui/de/floater_toybox.xml10
-rw-r--r--indra/newview/skins/default/xui/de/floater_voice_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/de/menu_bottomtray.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_hide_navbar.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_login.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_toolbars.xml6
-rw-r--r--indra/newview/skins/default/xui/de/menu_viewer.xml25
-rw-r--r--indra/newview/skins/default/xui/de/notifications.xml14
-rw-r--r--indra/newview/skins/default/xui/de/panel_chiclet_bar.xml15
-rw-r--r--indra/newview/skins/default/xui/de/panel_me.xml5
-rw-r--r--indra/newview/skins/default/xui/de/panel_navigation_bar.xml35
-rw-r--r--indra/newview/skins/default/xui/de/panel_nearby_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_move.xml31
-rw-r--r--indra/newview/skins/default/xui/de/panel_status_bar.xml5
-rw-r--r--indra/newview/skins/default/xui/de/strings.xml175
-rw-r--r--indra/newview/skins/default/xui/en/floater_avatar.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_camera.xml5
-rw-r--r--indra/newview/skins/default/xui/en/floater_destinations.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_how_to.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_hud.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_map.xml1
-rwxr-xr-x[-rw-r--r--]indra/newview/skins/default/xui/en/floater_model_preview.xml0
-rw-r--r--indra/newview/skins/default/xui/en/floater_moveview.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_my_appearance.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_my_inventory.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_people.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_picks.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_places.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_sound_devices.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_translation_settings.xml244
-rw-r--r--indra/newview/skins/default/xui/en/floater_voice_controls.xml11
-rw-r--r--indra/newview/skins/default/xui/en/menu_bottomtray.xml163
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml10
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml20
-rw-r--r--indra/newview/skins/default/xui/en/panel_chat_item.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_chiclet_bar.xml12
-rw-r--r--indra/newview/skins/default/xui/en/panel_notification.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_chat.xml127
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml12
-rw-r--r--indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml7
-rw-r--r--indra/newview/skins/default/xui/es/floater_about.xml5
-rw-r--r--indra/newview/skins/default/xui/es/floater_about_land.xml6
-rw-r--r--indra/newview/skins/default/xui/es/floater_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_camera.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_chat_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/es/floater_destinations.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_fast_timers.xml10
-rw-r--r--indra/newview/skins/default/xui/es/floater_how_to.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_map.xml4
-rw-r--r--indra/newview/skins/default/xui/es/floater_model_preview.xml376
-rw-r--r--indra/newview/skins/default/xui/es/floater_model_wizard.xml122
-rw-r--r--indra/newview/skins/default/xui/es/floater_moveview.xml6
-rw-r--r--indra/newview/skins/default/xui/es/floater_my_appearance.xml4
-rw-r--r--indra/newview/skins/default/xui/es/floater_my_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_object_weights.xml28
-rw-r--r--indra/newview/skins/default/xui/es/floater_outfit_save_as.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_people.xml7
-rw-r--r--indra/newview/skins/default/xui/es/floater_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_places.xml4
-rw-r--r--indra/newview/skins/default/xui/es/floater_sound_devices.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_stats.xml24
-rw-r--r--indra/newview/skins/default/xui/es/floater_tools.xml11
-rw-r--r--indra/newview/skins/default/xui/es/floater_toybox.xml10
-rw-r--r--indra/newview/skins/default/xui/es/floater_voice_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/es/menu_hide_navbar.xml2
-rw-r--r--indra/newview/skins/default/xui/es/menu_login.xml2
-rw-r--r--indra/newview/skins/default/xui/es/menu_toolbars.xml6
-rw-r--r--indra/newview/skins/default/xui/es/menu_viewer.xml25
-rw-r--r--indra/newview/skins/default/xui/es/notifications.xml14
-rw-r--r--indra/newview/skins/default/xui/es/panel_chiclet_bar.xml15
-rw-r--r--indra/newview/skins/default/xui/es/panel_me.xml5
-rw-r--r--indra/newview/skins/default/xui/es/panel_navigation_bar.xml35
-rw-r--r--indra/newview/skins/default/xui/es/panel_nearby_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_move.xml31
-rw-r--r--indra/newview/skins/default/xui/es/panel_status_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/es/sidepanel_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/es/strings.xml180
-rw-r--r--indra/newview/skins/default/xui/it/floater_about.xml7
-rw-r--r--indra/newview/skins/default/xui/it/floater_about_land.xml6
-rw-r--r--indra/newview/skins/default/xui/it/floater_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_camera.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_chat_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/it/floater_destinations.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_fast_timers.xml10
-rw-r--r--indra/newview/skins/default/xui/it/floater_how_to.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_map.xml4
-rw-r--r--indra/newview/skins/default/xui/it/floater_model_preview.xml376
-rw-r--r--indra/newview/skins/default/xui/it/floater_model_wizard.xml122
-rw-r--r--indra/newview/skins/default/xui/it/floater_moveview.xml6
-rw-r--r--indra/newview/skins/default/xui/it/floater_my_appearance.xml4
-rw-r--r--indra/newview/skins/default/xui/it/floater_my_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_object_weights.xml28
-rw-r--r--indra/newview/skins/default/xui/it/floater_outfit_save_as.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_people.xml7
-rw-r--r--indra/newview/skins/default/xui/it/floater_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_places.xml4
-rw-r--r--indra/newview/skins/default/xui/it/floater_sound_devices.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_stats.xml26
-rw-r--r--indra/newview/skins/default/xui/it/floater_tools.xml11
-rw-r--r--indra/newview/skins/default/xui/it/floater_toybox.xml10
-rw-r--r--indra/newview/skins/default/xui/it/floater_voice_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/it/menu_hide_navbar.xml2
-rw-r--r--indra/newview/skins/default/xui/it/menu_login.xml2
-rw-r--r--indra/newview/skins/default/xui/it/menu_toolbars.xml6
-rw-r--r--indra/newview/skins/default/xui/it/menu_viewer.xml25
-rw-r--r--indra/newview/skins/default/xui/it/notifications.xml14
-rw-r--r--indra/newview/skins/default/xui/it/panel_chiclet_bar.xml15
-rw-r--r--indra/newview/skins/default/xui/it/panel_me.xml5
-rw-r--r--indra/newview/skins/default/xui/it/panel_navigation_bar.xml35
-rw-r--r--indra/newview/skins/default/xui/it/panel_nearby_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_move.xml31
-rw-r--r--indra/newview/skins/default/xui/it/panel_status_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/it/sidepanel_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/it/strings.xml178
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about_land.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_camera.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_chat_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/ja/floater_destinations.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_fast_timers.xml10
-rw-r--r--indra/newview/skins/default/xui/ja/floater_how_to.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_map.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_model_preview.xml376
-rw-r--r--indra/newview/skins/default/xui/ja/floater_model_wizard.xml122
-rw-r--r--indra/newview/skins/default/xui/ja/floater_moveview.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_my_appearance.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_my_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_object_weights.xml28
-rw-r--r--indra/newview/skins/default/xui/ja/floater_people.xml7
-rw-r--r--indra/newview/skins/default/xui/ja/floater_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_places.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_stats.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/floater_tools.xml11
-rw-r--r--indra/newview/skins/default/xui/ja/floater_toybox.xml10
-rw-r--r--indra/newview/skins/default/xui/ja/menu_hide_navbar.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_login.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_toolbars.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/menu_viewer.xml25
-rw-r--r--indra/newview/skins/default/xui/ja/notifications.xml14
-rw-r--r--indra/newview/skins/default/xui/ja/panel_chiclet_bar.xml15
-rw-r--r--indra/newview/skins/default/xui/ja/panel_me.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/panel_navigation_bar.xml35
-rw-r--r--indra/newview/skins/default/xui/ja/panel_nearby_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_move.xml31
-rw-r--r--indra/newview/skins/default/xui/ja/panel_status_bar.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/strings.xml181
-rw-r--r--indra/newview/skins/default/xui/pl/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_about.xml7
-rw-r--r--indra/newview/skins/default/xui/pt/floater_about_land.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/floater_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_camera.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_chat_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/pt/floater_destinations.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_fast_timers.xml10
-rw-r--r--indra/newview/skins/default/xui/pt/floater_how_to.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_map.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/floater_model_preview.xml376
-rw-r--r--indra/newview/skins/default/xui/pt/floater_model_wizard.xml122
-rw-r--r--indra/newview/skins/default/xui/pt/floater_moveview.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/floater_my_appearance.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/floater_my_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_object_weights.xml28
-rw-r--r--indra/newview/skins/default/xui/pt/floater_outfit_save_as.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_people.xml7
-rw-r--r--indra/newview/skins/default/xui/pt/floater_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_places.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/floater_sound_devices.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_stats.xml26
-rw-r--r--indra/newview/skins/default/xui/pt/floater_tools.xml11
-rw-r--r--indra/newview/skins/default/xui/pt/floater_toybox.xml10
-rw-r--r--indra/newview/skins/default/xui/pt/floater_voice_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/menu_bottomtray.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/menu_hide_navbar.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/menu_login.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/menu_toolbars.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/menu_viewer.xml25
-rw-r--r--indra/newview/skins/default/xui/pt/notifications.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/panel_chiclet_bar.xml15
-rw-r--r--indra/newview/skins/default/xui/pt/panel_me.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/panel_navigation_bar.xml35
-rw-r--r--indra/newview/skins/default/xui/pt/panel_nearby_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_move.xml31
-rw-r--r--indra/newview/skins/default/xui/pt/panel_status_bar.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/strings.xml178
-rw-r--r--indra/newview/skins/default/xui/ru/floater_aaa.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/floater_about.xml95
-rw-r--r--indra/newview/skins/default/xui/ru/floater_about_land.xml490
-rw-r--r--indra/newview/skins/default/xui/ru/floater_activeim.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_animation_preview.xml183
-rw-r--r--indra/newview/skins/default/xui/ru/floater_auction.xml11
-rw-r--r--indra/newview/skins/default/xui/ru/floater_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_avatar_picker.xml53
-rw-r--r--indra/newview/skins/default/xui/ru/floater_avatar_textures.xml50
-rw-r--r--indra/newview/skins/default/xui/ru/floater_beacons.xml22
-rw-r--r--indra/newview/skins/default/xui/ru/floater_build_options.xml33
-rw-r--r--indra/newview/skins/default/xui/ru/floater_bulk_perms.xml45
-rw-r--r--indra/newview/skins/default/xui/ru/floater_bumps.xml24
-rw-r--r--indra/newview/skins/default/xui/ru/floater_buy_contents.xml21
-rw-r--r--indra/newview/skins/default/xui/ru/floater_buy_currency.xml66
-rw-r--r--indra/newview/skins/default/xui/ru/floater_buy_currency_html.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_buy_land.xml233
-rw-r--r--indra/newview/skins/default/xui/ru/floater_buy_object.xml29
-rw-r--r--indra/newview/skins/default/xui/ru/floater_camera.xml65
-rw-r--r--indra/newview/skins/default/xui/ru/floater_chat_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/floater_choose_group.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/floater_color_picker.xml30
-rw-r--r--indra/newview/skins/default/xui/ru/floater_critical.xml10
-rw-r--r--indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml95
-rw-r--r--indra/newview/skins/default/xui/ru/floater_delete_env_preset.xml35
-rw-r--r--indra/newview/skins/default/xui/ru/floater_destinations.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_display_name.xml18
-rw-r--r--indra/newview/skins/default/xui/ru/floater_edit_day_cycle.xml104
-rw-r--r--indra/newview/skins/default/xui/ru/floater_edit_sky_preset.xml143
-rw-r--r--indra/newview/skins/default/xui/ru/floater_edit_water_preset.xml72
-rw-r--r--indra/newview/skins/default/xui/ru/floater_env_settings.xml25
-rw-r--r--indra/newview/skins/default/xui/ru/floater_environment_settings.xml36
-rw-r--r--indra/newview/skins/default/xui/ru/floater_event.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/floater_fast_timers.xml10
-rw-r--r--indra/newview/skins/default/xui/ru/floater_font_test.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_gesture.xml26
-rw-r--r--indra/newview/skins/default/xui/ru/floater_god_tools.xml96
-rw-r--r--indra/newview/skins/default/xui/ru/floater_hardware_settings.xml31
-rw-r--r--indra/newview/skins/default/xui/ru/floater_help_browser.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/floater_how_to.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_hud.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_im_container.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_im_session.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/floater_image_preview.xml31
-rw-r--r--indra/newview/skins/default/xui/ru/floater_import_collada.xml23
-rw-r--r--indra/newview/skins/default/xui/ru/floater_incoming_call.xml33
-rw-r--r--indra/newview/skins/default/xui/ru/floater_inspect.xml14
-rw-r--r--indra/newview/skins/default/xui/ru/floater_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/floater_inventory_item_properties.xml67
-rw-r--r--indra/newview/skins/default/xui/ru/floater_inventory_view_finder.xml25
-rw-r--r--indra/newview/skins/default/xui/ru/floater_joystick.xml79
-rw-r--r--indra/newview/skins/default/xui/ru/floater_lagmeter.xml151
-rw-r--r--indra/newview/skins/default/xui/ru/floater_land_holdings.xml39
-rw-r--r--indra/newview/skins/default/xui/ru/floater_live_lsleditor.xml15
-rw-r--r--indra/newview/skins/default/xui/ru/floater_lsl_guide.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/floater_map.xml36
-rw-r--r--indra/newview/skins/default/xui/ru/floater_media_browser.xml30
-rw-r--r--indra/newview/skins/default/xui/ru/floater_media_settings.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/floater_mem_leaking.xml18
-rw-r--r--indra/newview/skins/default/xui/ru/floater_model_preview.xml274
-rw-r--r--indra/newview/skins/default/xui/ru/floater_model_wizard.xml205
-rw-r--r--indra/newview/skins/default/xui/ru/floater_moveview.xml75
-rw-r--r--indra/newview/skins/default/xui/ru/floater_mute_object.xml14
-rw-r--r--indra/newview/skins/default/xui/ru/floater_my_appearance.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/floater_my_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_nearby_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/floater_notification.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/floater_notifications_console.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/floater_object_weights.xml28
-rw-r--r--indra/newview/skins/default/xui/ru/floater_openobject.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/floater_outgoing_call.xml40
-rw-r--r--indra/newview/skins/default/xui/ru/floater_pay.xml21
-rw-r--r--indra/newview/skins/default/xui/ru/floater_pay_object.xml28
-rw-r--r--indra/newview/skins/default/xui/ru/floater_people.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/floater_perm_prefs.xml15
-rw-r--r--indra/newview/skins/default/xui/ru/floater_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_places.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/floater_post_process.xml53
-rw-r--r--indra/newview/skins/default/xui/ru/floater_postcard.xml33
-rw-r--r--indra/newview/skins/default/xui/ru/floater_preferences.xml17
-rw-r--r--indra/newview/skins/default/xui/ru/floater_preferences_proxy.xml40
-rw-r--r--indra/newview/skins/default/xui/ru/floater_preview_animation.xml11
-rw-r--r--indra/newview/skins/default/xui/ru/floater_preview_gesture.xml73
-rw-r--r--indra/newview/skins/default/xui/ru/floater_preview_notecard.xml20
-rw-r--r--indra/newview/skins/default/xui/ru/floater_preview_sound.xml11
-rw-r--r--indra/newview/skins/default/xui/ru/floater_preview_texture.xml47
-rw-r--r--indra/newview/skins/default/xui/ru/floater_price_for_listing.xml18
-rw-r--r--indra/newview/skins/default/xui/ru/floater_publish_classified.xml11
-rw-r--r--indra/newview/skins/default/xui/ru/floater_region_debug_console.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_region_info.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_report_abuse.xml94
-rw-r--r--indra/newview/skins/default/xui/ru/floater_script_debug.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_script_debug_panel.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_script_limits.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_script_preview.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/floater_script_queue.xml19
-rw-r--r--indra/newview/skins/default/xui/ru/floater_script_search.xml13
-rw-r--r--indra/newview/skins/default/xui/ru/floater_search.xml16
-rw-r--r--indra/newview/skins/default/xui/ru/floater_select_key.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/floater_sell_land.xml65
-rw-r--r--indra/newview/skins/default/xui/ru/floater_settings_debug.xml13
-rw-r--r--indra/newview/skins/default/xui/ru/floater_snapshot.xml74
-rw-r--r--indra/newview/skins/default/xui/ru/floater_sound_devices.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/floater_sound_preview.xml11
-rw-r--r--indra/newview/skins/default/xui/ru/floater_stats.xml79
-rw-r--r--indra/newview/skins/default/xui/ru/floater_sys_well.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/floater_telehub.xml29
-rw-r--r--indra/newview/skins/default/xui/ru/floater_texture_ctrl.xml23
-rw-r--r--indra/newview/skins/default/xui/ru/floater_tools.xml491
-rw-r--r--indra/newview/skins/default/xui/ru/floater_top_objects.xml55
-rw-r--r--indra/newview/skins/default/xui/ru/floater_tos.xml15
-rw-r--r--indra/newview/skins/default/xui/ru/floater_toybox.xml10
-rw-r--r--indra/newview/skins/default/xui/ru/floater_url_entry.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/floater_voice_controls.xml30
-rw-r--r--indra/newview/skins/default/xui/ru/floater_voice_effect.xml138
-rw-r--r--indra/newview/skins/default/xui/ru/floater_water.xml70
-rw-r--r--indra/newview/skins/default/xui/ru/floater_web_content.xml14
-rw-r--r--indra/newview/skins/default/xui/ru/floater_whitelist_entry.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/floater_windlight_options.xml167
-rw-r--r--indra/newview/skins/default/xui/ru/floater_window_size.xml17
-rw-r--r--indra/newview/skins/default/xui/ru/floater_world_map.xml73
-rw-r--r--indra/newview/skins/default/xui/ru/inspect_avatar.xml25
-rw-r--r--indra/newview/skins/default/xui/ru/inspect_group.xml32
-rw-r--r--indra/newview/skins/default/xui/ru/inspect_object.xml44
-rw-r--r--indra/newview/skins/default/xui/ru/inspect_remote_object.xml22
-rw-r--r--indra/newview/skins/default/xui/ru/menu_add_wearable_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_attachment_other.xml17
-rw-r--r--indra/newview/skins/default/xui/ru/menu_attachment_self.xml16
-rw-r--r--indra/newview/skins/default/xui/ru/menu_avatar_icon.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/menu_avatar_other.xml16
-rw-r--r--indra/newview/skins/default/xui/ru/menu_avatar_self.xml32
-rw-r--r--indra/newview/skins/default/xui/ru/menu_bottomtray.xml17
-rw-r--r--indra/newview/skins/default/xui/ru/menu_cof_attachment.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/menu_cof_body_part.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_cof_clothing.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_cof_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_edit.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/menu_favorites.xml10
-rw-r--r--indra/newview/skins/default/xui/ru/menu_gesture_gear.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/menu_group_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_hide_navbar.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_im_well_button.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/menu_imchiclet_adhoc.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/menu_imchiclet_group.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_imchiclet_p2p.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/menu_inspect_avatar_gear.xml21
-rw-r--r--indra/newview/skins/default/xui/ru/menu_inspect_object_gear.xml18
-rw-r--r--indra/newview/skins/default/xui/ru/menu_inspect_self_gear.xml31
-rw-r--r--indra/newview/skins/default/xui/ru/menu_inv_offer_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/menu_inventory.xml89
-rw-r--r--indra/newview/skins/default/xui/ru/menu_inventory_add.xml36
-rw-r--r--indra/newview/skins/default/xui/ru/menu_inventory_gear_default.xml17
-rw-r--r--indra/newview/skins/default/xui/ru/menu_land.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/menu_landmark.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/menu_login.xml25
-rw-r--r--indra/newview/skins/default/xui/ru/menu_media_ctrl.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/menu_mini_map.xml11
-rw-r--r--indra/newview/skins/default/xui/ru/menu_mode_change.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_model_import_gear_default.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/menu_navbar.xml11
-rw-r--r--indra/newview/skins/default/xui/ru/menu_nearby_chat.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/menu_notification_well_button.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/menu_object.xml27
-rw-r--r--indra/newview/skins/default/xui/ru/menu_object_icon.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_outfit_gear.xml28
-rw-r--r--indra/newview/skins/default/xui/ru/menu_outfit_tab.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/menu_participant_list.xml21
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_friends_view_sort.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_groups.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_groups_view_sort.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_nearby.xml13
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_nearby_multiselect.xml10
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_nearby_view_sort.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/menu_people_recent_view_sort.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/menu_picks.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/menu_picks_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_place.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_place_add_button.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_places_gear_folder.xml16
-rw-r--r--indra/newview/skins/default/xui/ru/menu_places_gear_landmark.xml19
-rw-r--r--indra/newview/skins/default/xui/ru/menu_profile_overflow.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/menu_save_outfit.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_script_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/menu_slurl.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_teleport_history_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_teleport_history_item.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_teleport_history_tab.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_text_editor.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/menu_toolbars.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_topinfobar.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/menu_url_agent.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_url_group.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_url_http.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/menu_url_inventory.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_url_map.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_url_objectim.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/menu_url_parcel.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_url_slapp.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/menu_url_slurl.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/menu_url_teleport.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_viewer.xml456
-rw-r--r--indra/newview/skins/default/xui/ru/menu_wearable_list_item.xml14
-rw-r--r--indra/newview/skins/default/xui/ru/menu_wearing_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_wearing_tab.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/mime_types.xml217
-rw-r--r--indra/newview/skins/default/xui/ru/mime_types_linux.xml217
-rw-r--r--indra/newview/skins/default/xui/ru/mime_types_mac.xml217
-rw-r--r--indra/newview/skins/default/xui/ru/notifications.xml3076
-rw-r--r--indra/newview/skins/default/xui/ru/panel_active_object_row.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/panel_adhoc_control_panel.xml14
-rw-r--r--indra/newview/skins/default/xui/ru/panel_avatar_list_item.xml31
-rw-r--r--indra/newview/skins/default/xui/ru/panel_avatar_tag.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_block_list_sidetray.xml10
-rw-r--r--indra/newview/skins/default/xui/ru/panel_body_parts_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/panel_bodyparts_list_button_bar.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_bottomtray.xml47
-rw-r--r--indra/newview/skins/default/xui/ru/panel_bottomtray_lite.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/panel_chat_header.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml15
-rw-r--r--indra/newview/skins/default/xui/ru/panel_classified_info.xml67
-rw-r--r--indra/newview/skins/default/xui/ru/panel_clothing_list_button_bar.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_clothing_list_item.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/panel_cof_wearables.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/panel_deletable_wearable_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/panel_dummy_clothing_list_item.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_alpha.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_classified.xml54
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_eyes.xml11
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_gloves.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_hair.xml14
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_jacket.xml13
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_pants.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_physics.xml14
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_pick.xml37
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_profile.xml68
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_shape.xml25
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_shirt.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_shoes.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_skin.xml16
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_skirt.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_socks.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_tattoo.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_underpants.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_undershirt.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_edit_wearable.xml120
-rw-r--r--indra/newview/skins/default/xui/ru/panel_group_control_panel.xml17
-rw-r--r--indra/newview/skins/default/xui/ru/panel_group_general.xml56
-rw-r--r--indra/newview/skins/default/xui/ru/panel_group_info_sidetray.xml41
-rw-r--r--indra/newview/skins/default/xui/ru/panel_group_invite.xml27
-rw-r--r--indra/newview/skins/default/xui/ru/panel_group_land_money.xml85
-rw-r--r--indra/newview/skins/default/xui/ru/panel_group_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/panel_group_notices.xml61
-rw-r--r--indra/newview/skins/default/xui/ru/panel_group_notify.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_group_roles.xml95
-rw-r--r--indra/newview/skins/default/xui/ru/panel_im_control_panel.xml29
-rw-r--r--indra/newview/skins/default/xui/ru/panel_instant_message.xml9
-rw-r--r--indra/newview/skins/default/xui/ru/panel_inventory_item.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_landmark_info.xml41
-rw-r--r--indra/newview/skins/default/xui/ru/panel_landmarks.xml22
-rw-r--r--indra/newview/skins/default/xui/ru/panel_login.xml40
-rw-r--r--indra/newview/skins/default/xui/ru/panel_main_inventory.xml28
-rw-r--r--indra/newview/skins/default/xui/ru/panel_me.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_media_settings_general.xml32
-rw-r--r--indra/newview/skins/default/xui/ru/panel_media_settings_permissions.xml29
-rw-r--r--indra/newview/skins/default/xui/ru/panel_media_settings_security.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_my_profile.xml42
-rw-r--r--indra/newview/skins/default/xui/ru/panel_navigation_bar.xml23
-rw-r--r--indra/newview/skins/default/xui/ru/panel_nearby_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_nearby_chat_bar.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/panel_nearby_media.xml70
-rw-r--r--indra/newview/skins/default/xui/ru/panel_notes.xml35
-rw-r--r--indra/newview/skins/default/xui/ru/panel_notify_textbox.xml11
-rw-r--r--indra/newview/skins/default/xui/ru/panel_online_status_toast.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/panel_outbox_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/panel_outfit_edit.xml57
-rw-r--r--indra/newview/skins/default/xui/ru/panel_outfits_inventory.xml23
-rw-r--r--indra/newview/skins/default/xui/ru/panel_outfits_inventory_gear_default.xml8
-rw-r--r--indra/newview/skins/default/xui/ru/panel_outfits_list.xml11
-rw-r--r--indra/newview/skins/default/xui/ru/panel_outfits_wearing.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/panel_people.xml94
-rw-r--r--indra/newview/skins/default/xui/ru/panel_pick_info.xml24
-rw-r--r--indra/newview/skins/default/xui/ru/panel_picks.xml29
-rw-r--r--indra/newview/skins/default/xui/ru/panel_place_profile.xml118
-rw-r--r--indra/newview/skins/default/xui/ru/panel_places.xml48
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml31
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml14
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_chat.xml57
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_colors.xml44
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_general.xml76
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml114
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_move.xml39
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml30
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_setup.xml36
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_sound.xml40
-rw-r--r--indra/newview/skins/default/xui/ru/panel_prim_media_controls.xml91
-rw-r--r--indra/newview/skins/default/xui/ru/panel_profile.xml67
-rw-r--r--indra/newview/skins/default/xui/ru/panel_profile_view.xml20
-rw-r--r--indra/newview/skins/default/xui/ru/panel_region_covenant.xml79
-rw-r--r--indra/newview/skins/default/xui/ru/panel_region_debug.xml34
-rw-r--r--indra/newview/skins/default/xui/ru/panel_region_environment.xml33
-rw-r--r--indra/newview/skins/default/xui/ru/panel_region_estate.xml52
-rw-r--r--indra/newview/skins/default/xui/ru/panel_region_general.xml44
-rw-r--r--indra/newview/skins/default/xui/ru/panel_region_terrain.xml60
-rw-r--r--indra/newview/skins/default/xui/ru/panel_region_texture.xml54
-rw-r--r--indra/newview/skins/default/xui/ru/panel_script_ed.xml47
-rw-r--r--indra/newview/skins/default/xui/ru/panel_script_limits_my_avatar.xml16
-rw-r--r--indra/newview/skins/default/xui/ru/panel_script_limits_region_memory.xml20
-rw-r--r--indra/newview/skins/default/xui/ru/panel_scrolling_param.xml10
-rw-r--r--indra/newview/skins/default/xui/ru/panel_scrolling_param_base.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_side_tray.xml29
-rw-r--r--indra/newview/skins/default/xui/ru/panel_side_tray_tab_caption.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/panel_sound_devices.xml25
-rw-r--r--indra/newview/skins/default/xui/ru/panel_stand_stop_flying.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/panel_status_bar.xml28
-rw-r--r--indra/newview/skins/default/xui/ru/panel_teleport_history.xml19
-rw-r--r--indra/newview/skins/default/xui/ru/panel_teleport_history_item.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/panel_voice_effect.xml15
-rw-r--r--indra/newview/skins/default/xui/ru/panel_world_map.xml63
-rw-r--r--indra/newview/skins/default/xui/ru/role_actions.xml73
-rw-r--r--indra/newview/skins/default/xui/ru/sidepanel_appearance.xml19
-rw-r--r--indra/newview/skins/default/xui/ru/sidepanel_inventory.xml65
-rw-r--r--indra/newview/skins/default/xui/ru/sidepanel_item_info.xml76
-rw-r--r--indra/newview/skins/default/xui/ru/sidepanel_task_info.xml123
-rw-r--r--indra/newview/skins/default/xui/ru/strings.xml4946
-rw-r--r--indra/newview/skins/default/xui/ru/teleport_strings.xml80
-rw-r--r--indra/newview/skins/default/xui/tr/floater_aaa.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/floater_about.xml96
-rw-r--r--indra/newview/skins/default/xui/tr/floater_about_land.xml490
-rw-r--r--indra/newview/skins/default/xui/tr/floater_activeim.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_animation_preview.xml186
-rw-r--r--indra/newview/skins/default/xui/tr/floater_auction.xml11
-rw-r--r--indra/newview/skins/default/xui/tr/floater_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_avatar_picker.xml53
-rw-r--r--indra/newview/skins/default/xui/tr/floater_avatar_textures.xml50
-rw-r--r--indra/newview/skins/default/xui/tr/floater_beacons.xml22
-rw-r--r--indra/newview/skins/default/xui/tr/floater_build_options.xml33
-rw-r--r--indra/newview/skins/default/xui/tr/floater_bulk_perms.xml45
-rw-r--r--indra/newview/skins/default/xui/tr/floater_bumps.xml24
-rw-r--r--indra/newview/skins/default/xui/tr/floater_buy_contents.xml21
-rw-r--r--indra/newview/skins/default/xui/tr/floater_buy_currency.xml66
-rw-r--r--indra/newview/skins/default/xui/tr/floater_buy_currency_html.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_buy_land.xml233
-rw-r--r--indra/newview/skins/default/xui/tr/floater_buy_object.xml29
-rw-r--r--indra/newview/skins/default/xui/tr/floater_camera.xml65
-rw-r--r--indra/newview/skins/default/xui/tr/floater_chat_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/floater_choose_group.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/floater_color_picker.xml30
-rw-r--r--indra/newview/skins/default/xui/tr/floater_critical.xml10
-rw-r--r--indra/newview/skins/default/xui/tr/floater_day_cycle_options.xml95
-rw-r--r--indra/newview/skins/default/xui/tr/floater_delete_env_preset.xml35
-rw-r--r--indra/newview/skins/default/xui/tr/floater_destinations.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_display_name.xml18
-rw-r--r--indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml104
-rw-r--r--indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml143
-rw-r--r--indra/newview/skins/default/xui/tr/floater_edit_water_preset.xml72
-rw-r--r--indra/newview/skins/default/xui/tr/floater_env_settings.xml25
-rw-r--r--indra/newview/skins/default/xui/tr/floater_environment_settings.xml36
-rw-r--r--indra/newview/skins/default/xui/tr/floater_event.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/floater_fast_timers.xml10
-rw-r--r--indra/newview/skins/default/xui/tr/floater_font_test.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_gesture.xml26
-rw-r--r--indra/newview/skins/default/xui/tr/floater_god_tools.xml96
-rw-r--r--indra/newview/skins/default/xui/tr/floater_hardware_settings.xml31
-rw-r--r--indra/newview/skins/default/xui/tr/floater_help_browser.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/floater_how_to.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_hud.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_im_container.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_im_session.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/floater_image_preview.xml32
-rw-r--r--indra/newview/skins/default/xui/tr/floater_import_collada.xml23
-rw-r--r--indra/newview/skins/default/xui/tr/floater_incoming_call.xml33
-rw-r--r--indra/newview/skins/default/xui/tr/floater_inspect.xml14
-rw-r--r--indra/newview/skins/default/xui/tr/floater_inventory.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/floater_inventory_item_properties.xml67
-rw-r--r--indra/newview/skins/default/xui/tr/floater_inventory_view_finder.xml25
-rw-r--r--indra/newview/skins/default/xui/tr/floater_joystick.xml79
-rw-r--r--indra/newview/skins/default/xui/tr/floater_lagmeter.xml151
-rw-r--r--indra/newview/skins/default/xui/tr/floater_land_holdings.xml39
-rw-r--r--indra/newview/skins/default/xui/tr/floater_live_lsleditor.xml15
-rw-r--r--indra/newview/skins/default/xui/tr/floater_lsl_guide.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/floater_map.xml36
-rw-r--r--indra/newview/skins/default/xui/tr/floater_media_browser.xml30
-rw-r--r--indra/newview/skins/default/xui/tr/floater_media_settings.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/floater_mem_leaking.xml18
-rw-r--r--indra/newview/skins/default/xui/tr/floater_model_preview.xml274
-rw-r--r--indra/newview/skins/default/xui/tr/floater_model_wizard.xml205
-rw-r--r--indra/newview/skins/default/xui/tr/floater_moveview.xml75
-rw-r--r--indra/newview/skins/default/xui/tr/floater_mute_object.xml14
-rw-r--r--indra/newview/skins/default/xui/tr/floater_my_appearance.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/floater_my_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_nearby_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/floater_notification.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/floater_notifications_console.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/floater_object_weights.xml28
-rw-r--r--indra/newview/skins/default/xui/tr/floater_openobject.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/floater_outgoing_call.xml40
-rw-r--r--indra/newview/skins/default/xui/tr/floater_pay.xml21
-rw-r--r--indra/newview/skins/default/xui/tr/floater_pay_object.xml28
-rw-r--r--indra/newview/skins/default/xui/tr/floater_people.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/floater_perm_prefs.xml15
-rw-r--r--indra/newview/skins/default/xui/tr/floater_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_places.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/floater_post_process.xml53
-rw-r--r--indra/newview/skins/default/xui/tr/floater_postcard.xml33
-rw-r--r--indra/newview/skins/default/xui/tr/floater_preferences.xml17
-rw-r--r--indra/newview/skins/default/xui/tr/floater_preferences_proxy.xml40
-rw-r--r--indra/newview/skins/default/xui/tr/floater_preview_animation.xml11
-rw-r--r--indra/newview/skins/default/xui/tr/floater_preview_gesture.xml73
-rw-r--r--indra/newview/skins/default/xui/tr/floater_preview_notecard.xml20
-rw-r--r--indra/newview/skins/default/xui/tr/floater_preview_sound.xml11
-rw-r--r--indra/newview/skins/default/xui/tr/floater_preview_texture.xml47
-rw-r--r--indra/newview/skins/default/xui/tr/floater_price_for_listing.xml18
-rw-r--r--indra/newview/skins/default/xui/tr/floater_publish_classified.xml11
-rw-r--r--indra/newview/skins/default/xui/tr/floater_region_debug_console.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_region_info.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_report_abuse.xml94
-rw-r--r--indra/newview/skins/default/xui/tr/floater_script_debug.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_script_debug_panel.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_script_limits.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_script_preview.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/floater_script_queue.xml19
-rw-r--r--indra/newview/skins/default/xui/tr/floater_script_search.xml13
-rw-r--r--indra/newview/skins/default/xui/tr/floater_search.xml16
-rw-r--r--indra/newview/skins/default/xui/tr/floater_select_key.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/floater_sell_land.xml65
-rw-r--r--indra/newview/skins/default/xui/tr/floater_settings_debug.xml13
-rw-r--r--indra/newview/skins/default/xui/tr/floater_snapshot.xml74
-rw-r--r--indra/newview/skins/default/xui/tr/floater_sound_devices.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/floater_sound_preview.xml11
-rw-r--r--indra/newview/skins/default/xui/tr/floater_stats.xml79
-rw-r--r--indra/newview/skins/default/xui/tr/floater_sys_well.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/floater_telehub.xml29
-rw-r--r--indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml23
-rw-r--r--indra/newview/skins/default/xui/tr/floater_tools.xml491
-rw-r--r--indra/newview/skins/default/xui/tr/floater_top_objects.xml55
-rw-r--r--indra/newview/skins/default/xui/tr/floater_tos.xml15
-rw-r--r--indra/newview/skins/default/xui/tr/floater_toybox.xml10
-rw-r--r--indra/newview/skins/default/xui/tr/floater_url_entry.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/floater_voice_controls.xml30
-rw-r--r--indra/newview/skins/default/xui/tr/floater_voice_effect.xml138
-rw-r--r--indra/newview/skins/default/xui/tr/floater_water.xml70
-rw-r--r--indra/newview/skins/default/xui/tr/floater_web_content.xml14
-rw-r--r--indra/newview/skins/default/xui/tr/floater_whitelist_entry.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/floater_windlight_options.xml167
-rw-r--r--indra/newview/skins/default/xui/tr/floater_window_size.xml17
-rw-r--r--indra/newview/skins/default/xui/tr/floater_world_map.xml73
-rw-r--r--indra/newview/skins/default/xui/tr/inspect_avatar.xml25
-rw-r--r--indra/newview/skins/default/xui/tr/inspect_group.xml32
-rw-r--r--indra/newview/skins/default/xui/tr/inspect_object.xml44
-rw-r--r--indra/newview/skins/default/xui/tr/inspect_remote_object.xml22
-rw-r--r--indra/newview/skins/default/xui/tr/menu_add_wearable_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_attachment_other.xml17
-rw-r--r--indra/newview/skins/default/xui/tr/menu_attachment_self.xml16
-rw-r--r--indra/newview/skins/default/xui/tr/menu_avatar_icon.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/menu_avatar_other.xml16
-rw-r--r--indra/newview/skins/default/xui/tr/menu_avatar_self.xml32
-rw-r--r--indra/newview/skins/default/xui/tr/menu_bottomtray.xml17
-rw-r--r--indra/newview/skins/default/xui/tr/menu_cof_attachment.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/menu_cof_body_part.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_cof_clothing.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_cof_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_edit.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/menu_favorites.xml10
-rw-r--r--indra/newview/skins/default/xui/tr/menu_gesture_gear.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/menu_group_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_hide_navbar.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_im_well_button.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/menu_imchiclet_adhoc.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/menu_imchiclet_group.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_imchiclet_p2p.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/menu_inspect_avatar_gear.xml21
-rw-r--r--indra/newview/skins/default/xui/tr/menu_inspect_object_gear.xml18
-rw-r--r--indra/newview/skins/default/xui/tr/menu_inspect_self_gear.xml31
-rw-r--r--indra/newview/skins/default/xui/tr/menu_inv_offer_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/menu_inventory.xml89
-rw-r--r--indra/newview/skins/default/xui/tr/menu_inventory_add.xml36
-rw-r--r--indra/newview/skins/default/xui/tr/menu_inventory_gear_default.xml17
-rw-r--r--indra/newview/skins/default/xui/tr/menu_land.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/menu_landmark.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/menu_login.xml25
-rw-r--r--indra/newview/skins/default/xui/tr/menu_media_ctrl.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/menu_mini_map.xml11
-rw-r--r--indra/newview/skins/default/xui/tr/menu_mode_change.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_model_import_gear_default.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/menu_navbar.xml11
-rw-r--r--indra/newview/skins/default/xui/tr/menu_nearby_chat.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/menu_notification_well_button.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/menu_object.xml27
-rw-r--r--indra/newview/skins/default/xui/tr/menu_object_icon.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_outfit_gear.xml28
-rw-r--r--indra/newview/skins/default/xui/tr/menu_outfit_tab.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/menu_participant_list.xml21
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_friends_view_sort.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_groups.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_groups_view_sort.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_nearby.xml13
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_nearby_multiselect.xml10
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_nearby_view_sort.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/menu_people_recent_view_sort.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/menu_picks.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/menu_picks_plus.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_place.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_place_add_button.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_places_gear_folder.xml16
-rw-r--r--indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml19
-rw-r--r--indra/newview/skins/default/xui/tr/menu_profile_overflow.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/menu_save_outfit.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_script_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/menu_slurl.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_teleport_history_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_teleport_history_item.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_teleport_history_tab.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_text_editor.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/menu_toolbars.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_topinfobar.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/menu_url_agent.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_url_group.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_url_http.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/menu_url_inventory.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_url_map.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_url_objectim.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/menu_url_parcel.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_url_slapp.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/menu_url_slurl.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/menu_url_teleport.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_viewer.xml456
-rw-r--r--indra/newview/skins/default/xui/tr/menu_wearable_list_item.xml14
-rw-r--r--indra/newview/skins/default/xui/tr/menu_wearing_gear.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_wearing_tab.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/mime_types.xml217
-rw-r--r--indra/newview/skins/default/xui/tr/mime_types_linux.xml217
-rw-r--r--indra/newview/skins/default/xui/tr/mime_types_mac.xml217
-rw-r--r--indra/newview/skins/default/xui/tr/notifications.xml3076
-rw-r--r--indra/newview/skins/default/xui/tr/panel_active_object_row.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/panel_adhoc_control_panel.xml14
-rw-r--r--indra/newview/skins/default/xui/tr/panel_avatar_list_item.xml31
-rw-r--r--indra/newview/skins/default/xui/tr/panel_avatar_tag.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_block_list_sidetray.xml10
-rw-r--r--indra/newview/skins/default/xui/tr/panel_body_parts_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/panel_bodyparts_list_button_bar.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_bottomtray.xml47
-rw-r--r--indra/newview/skins/default/xui/tr/panel_bottomtray_lite.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/panel_chat_header.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml15
-rw-r--r--indra/newview/skins/default/xui/tr/panel_classified_info.xml67
-rw-r--r--indra/newview/skins/default/xui/tr/panel_clothing_list_button_bar.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_clothing_list_item.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/panel_cof_wearables.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/panel_deletable_wearable_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/panel_dummy_clothing_list_item.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_alpha.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_classified.xml54
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_eyes.xml11
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_gloves.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_hair.xml14
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_jacket.xml13
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_pants.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_physics.xml14
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_pick.xml37
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_profile.xml68
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_shape.xml25
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_shirt.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_shoes.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_skin.xml16
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_skirt.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_socks.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_tattoo.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_underpants.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_undershirt.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_wearable.xml120
-rw-r--r--indra/newview/skins/default/xui/tr/panel_group_control_panel.xml17
-rw-r--r--indra/newview/skins/default/xui/tr/panel_group_general.xml57
-rw-r--r--indra/newview/skins/default/xui/tr/panel_group_info_sidetray.xml41
-rw-r--r--indra/newview/skins/default/xui/tr/panel_group_invite.xml27
-rw-r--r--indra/newview/skins/default/xui/tr/panel_group_land_money.xml85
-rw-r--r--indra/newview/skins/default/xui/tr/panel_group_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/panel_group_notices.xml61
-rw-r--r--indra/newview/skins/default/xui/tr/panel_group_notify.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_group_roles.xml93
-rw-r--r--indra/newview/skins/default/xui/tr/panel_im_control_panel.xml29
-rw-r--r--indra/newview/skins/default/xui/tr/panel_instant_message.xml9
-rw-r--r--indra/newview/skins/default/xui/tr/panel_inventory_item.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_landmark_info.xml41
-rw-r--r--indra/newview/skins/default/xui/tr/panel_landmarks.xml22
-rw-r--r--indra/newview/skins/default/xui/tr/panel_login.xml38
-rw-r--r--indra/newview/skins/default/xui/tr/panel_main_inventory.xml28
-rw-r--r--indra/newview/skins/default/xui/tr/panel_me.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_media_settings_general.xml32
-rw-r--r--indra/newview/skins/default/xui/tr/panel_media_settings_permissions.xml29
-rw-r--r--indra/newview/skins/default/xui/tr/panel_media_settings_security.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/panel_my_profile.xml42
-rw-r--r--indra/newview/skins/default/xui/tr/panel_navigation_bar.xml23
-rw-r--r--indra/newview/skins/default/xui/tr/panel_nearby_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_nearby_chat_bar.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/panel_nearby_media.xml70
-rw-r--r--indra/newview/skins/default/xui/tr/panel_notes.xml35
-rw-r--r--indra/newview/skins/default/xui/tr/panel_notify_textbox.xml11
-rw-r--r--indra/newview/skins/default/xui/tr/panel_online_status_toast.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_outbox_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_outfit_edit.xml57
-rw-r--r--indra/newview/skins/default/xui/tr/panel_outfits_inventory.xml23
-rw-r--r--indra/newview/skins/default/xui/tr/panel_outfits_inventory_gear_default.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/panel_outfits_list.xml11
-rw-r--r--indra/newview/skins/default/xui/tr/panel_outfits_wearing.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/panel_people.xml94
-rw-r--r--indra/newview/skins/default/xui/tr/panel_pick_info.xml24
-rw-r--r--indra/newview/skins/default/xui/tr/panel_picks.xml29
-rw-r--r--indra/newview/skins/default/xui/tr/panel_place_profile.xml118
-rw-r--r--indra/newview/skins/default/xui/tr/panel_places.xml48
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_advanced.xml31
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_alerts.xml14
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_chat.xml57
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_colors.xml44
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_general.xml76
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_graphics1.xml114
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_move.xml39
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml30
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_setup.xml36
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_sound.xml40
-rw-r--r--indra/newview/skins/default/xui/tr/panel_prim_media_controls.xml91
-rw-r--r--indra/newview/skins/default/xui/tr/panel_profile.xml67
-rw-r--r--indra/newview/skins/default/xui/tr/panel_profile_view.xml20
-rw-r--r--indra/newview/skins/default/xui/tr/panel_region_covenant.xml79
-rw-r--r--indra/newview/skins/default/xui/tr/panel_region_debug.xml34
-rw-r--r--indra/newview/skins/default/xui/tr/panel_region_environment.xml33
-rw-r--r--indra/newview/skins/default/xui/tr/panel_region_estate.xml52
-rw-r--r--indra/newview/skins/default/xui/tr/panel_region_general.xml44
-rw-r--r--indra/newview/skins/default/xui/tr/panel_region_terrain.xml60
-rw-r--r--indra/newview/skins/default/xui/tr/panel_region_texture.xml54
-rw-r--r--indra/newview/skins/default/xui/tr/panel_script_ed.xml47
-rw-r--r--indra/newview/skins/default/xui/tr/panel_script_limits_my_avatar.xml16
-rw-r--r--indra/newview/skins/default/xui/tr/panel_script_limits_region_memory.xml20
-rw-r--r--indra/newview/skins/default/xui/tr/panel_scrolling_param.xml10
-rw-r--r--indra/newview/skins/default/xui/tr/panel_scrolling_param_base.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_side_tray.xml29
-rw-r--r--indra/newview/skins/default/xui/tr/panel_side_tray_tab_caption.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/panel_sound_devices.xml25
-rw-r--r--indra/newview/skins/default/xui/tr/panel_stand_stop_flying.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/panel_status_bar.xml28
-rw-r--r--indra/newview/skins/default/xui/tr/panel_teleport_history.xml19
-rw-r--r--indra/newview/skins/default/xui/tr/panel_teleport_history_item.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/panel_voice_effect.xml15
-rw-r--r--indra/newview/skins/default/xui/tr/panel_world_map.xml63
-rw-r--r--indra/newview/skins/default/xui/tr/role_actions.xml73
-rw-r--r--indra/newview/skins/default/xui/tr/sidepanel_appearance.xml19
-rw-r--r--indra/newview/skins/default/xui/tr/sidepanel_inventory.xml65
-rw-r--r--indra/newview/skins/default/xui/tr/sidepanel_item_info.xml76
-rw-r--r--indra/newview/skins/default/xui/tr/sidepanel_task_info.xml123
-rw-r--r--indra/newview/skins/default/xui/tr/strings.xml4950
-rw-r--r--indra/newview/skins/default/xui/tr/teleport_strings.xml80
-rw-r--r--indra/newview/skins/default/xui/zh/floater_about.xml2
-rw-r--r--indra/newview/tests/lltranslate_test.cpp345
-rwxr-xr-x[-rw-r--r--]indra/win_crash_logger/llcrashloggerwindows.cpp1
950 files changed, 44041 insertions, 2713 deletions
diff --git a/indra/linux_crash_logger/llcrashloggerlinux.cpp b/indra/linux_crash_logger/llcrashloggerlinux.cpp
index 7316717193..62465f9937 100644..100755
--- a/indra/linux_crash_logger/llcrashloggerlinux.cpp
+++ b/indra/linux_crash_logger/llcrashloggerlinux.cpp
@@ -133,6 +133,12 @@ bool LLCrashLoggerLinux::mainLoop()
return true;
}
+bool LLCrashLoggerLinux::cleanup()
+{
+ commonCleanup();
+ return true;
+}
+
void LLCrashLoggerLinux::updateApplication(const std::string& message)
{
LLCrashLogger::updateApplication(message);
diff --git a/indra/linux_crash_logger/llcrashloggerlinux.h b/indra/linux_crash_logger/llcrashloggerlinux.h
index 65d5e4e653..dae6c46651 100644..100755
--- a/indra/linux_crash_logger/llcrashloggerlinux.h
+++ b/indra/linux_crash_logger/llcrashloggerlinux.h
@@ -39,6 +39,7 @@ public:
virtual bool mainLoop();
virtual void updateApplication(const std::string& = LLStringUtil::null);
virtual void gatherPlatformSpecificFiles();
+ virtual bool cleanup();
};
#endif
diff --git a/indra/llcommon/llinstancetracker.h b/indra/llcommon/llinstancetracker.h
index 5a3990a8df..34d841a4e0 100644
--- a/indra/llcommon/llinstancetracker.h
+++ b/indra/llcommon/llinstancetracker.h
@@ -193,7 +193,12 @@ public:
}
protected:
- LLInstanceTracker(KEY key) { add_(key); }
+ LLInstanceTracker(KEY key)
+ {
+ // make sure static data outlives all instances
+ getStatic();
+ add_(key);
+ }
virtual ~LLInstanceTracker()
{
// it's unsafe to delete instances of this type while all instances are being iterated over.
@@ -281,7 +286,8 @@ public:
protected:
LLInstanceTracker()
{
- // it's safe but unpredictable to create instances of this type while all instances are being iterated over. I hate unpredictable. This assert will probably be turned on early in the next development cycle.
+ // make sure static data outlives all instances
+ getStatic();
getSet_().insert(static_cast<T*>(this));
}
virtual ~LLInstanceTracker()
diff --git a/indra/llcrashlogger/llcrashlogger.cpp b/indra/llcrashlogger/llcrashlogger.cpp
index 331a1692ee..3461aa3e6c 100644..100755
--- a/indra/llcrashlogger/llcrashlogger.cpp
+++ b/indra/llcrashlogger/llcrashlogger.cpp
@@ -42,6 +42,7 @@
#include "llpumpio.h"
#include "llhttpclient.h"
#include "llsdserialize.h"
+#include "llproxy.h"
LLPumpIO* gServicePump;
BOOL gBreak = false;
@@ -428,3 +429,9 @@ bool LLCrashLogger::init()
return true;
}
+
+// For cleanup code common to all platforms.
+void LLCrashLogger::commonCleanup()
+{
+ LLProxy::cleanupClass();
+}
diff --git a/indra/llcrashlogger/llcrashlogger.h b/indra/llcrashlogger/llcrashlogger.h
index 5d0cb5931c..1510d7e0b3 100644..100755
--- a/indra/llcrashlogger/llcrashlogger.h
+++ b/indra/llcrashlogger/llcrashlogger.h
@@ -48,7 +48,8 @@ public:
virtual void updateApplication(const std::string& message = LLStringUtil::null);
virtual bool init();
virtual bool mainLoop() = 0;
- virtual bool cleanup() { return true; }
+ virtual bool cleanup() = 0;
+ void commonCleanup();
void setUserText(const std::string& text) { mCrashInfo["UserNotes"] = text; }
S32 getCrashBehavior() { return mCrashBehavior; }
bool runCrashLogPost(std::string host, LLSD data, std::string msg, int retries, int timeout);
diff --git a/indra/llmessage/llcurl.h b/indra/llmessage/llcurl.h
index 87de202717..87de202717 100644..100755
--- a/indra/llmessage/llcurl.h
+++ b/indra/llmessage/llcurl.h
diff --git a/indra/llui/llcommandmanager.cpp b/indra/llui/llcommandmanager.cpp
index 128ba609cb..0e2f3f1961 100644
--- a/indra/llui/llcommandmanager.cpp
+++ b/indra/llui/llcommandmanager.cpp
@@ -41,7 +41,7 @@
// LLCommandId class
//
-const LLCommandId LLCommandId::null = LLCommandId();
+const LLCommandId LLCommandId::null = LLCommandId("null command");
//
// LLCommand class
@@ -67,10 +67,11 @@ LLCommand::Params::Params()
}
LLCommand::LLCommand(const LLCommand::Params& p)
- : mAvailableInToybox(p.available_in_toybox)
+ : mIdentifier(p.name)
+ , mAvailableInToybox(p.available_in_toybox)
, mIcon(p.icon)
- , mIdentifier(p.name)
, mLabelRef(p.label_ref)
+ , mName(p.name)
, mTooltipRef(p.tooltip_ref)
, mExecuteFunction(p.execute_function)
, mExecuteParameters(p.execute_parameters)
@@ -134,7 +135,7 @@ void LLCommandManager::addCommand(LLCommand * command)
mCommandIndices[command_id.uuid()] = mCommands.size();
mCommands.push_back(command);
- lldebugs << "Successfully added command: " << command->id().name() << llendl;
+ lldebugs << "Successfully added command: " << command->name() << llendl;
}
//static
diff --git a/indra/llui/llcommandmanager.h b/indra/llui/llcommandmanager.h
index 9b93ab735a..a7276a48aa 100644
--- a/indra/llui/llcommandmanager.h
+++ b/indra/llui/llcommandmanager.h
@@ -50,31 +50,20 @@ public:
{}
};
- LLCommandId()
- : mName("null command")
- {
- mUUID = LLUUID::generateNewID(mName);
- }
-
LLCommandId(const std::string& name)
- : mName(name)
{
mUUID = LLUUID::generateNewID(name);
}
LLCommandId(const Params& p)
- : mName(p.name)
{
mUUID = LLUUID::generateNewID(p.name);
}
LLCommandId(const LLUUID& uuid)
- : mName(""),
- mUUID(uuid)
- {
- }
+ : mUUID(uuid)
+ {}
- const std::string& name() const { return mName; }
const LLUUID& uuid() const { return mUUID; }
bool operator!=(const LLCommandId& command) const
@@ -87,15 +76,9 @@ public:
return (mUUID == command.mUUID);
}
- bool operator<(const LLCommandId& command) const
- {
- return (mName < command.mName);
- }
-
static const LLCommandId null;
private:
- std::string mName;
LLUUID mUUID;
};
@@ -137,6 +120,7 @@ public:
const std::string& icon() const { return mIcon; }
const LLCommandId& id() const { return mIdentifier; }
const std::string& labelRef() const { return mLabelRef; }
+ const std::string& name() const { return mName; }
const std::string& tooltipRef() const { return mTooltipRef; }
const std::string& executeFunctionName() const { return mExecuteFunction; }
@@ -160,6 +144,7 @@ private:
bool mAvailableInToybox;
std::string mIcon;
std::string mLabelRef;
+ std::string mName;
std::string mTooltipRef;
std::string mExecuteFunction;
diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp
index ca2dc644a4..aea58be12a 100644
--- a/indra/llui/lldockablefloater.cpp
+++ b/indra/llui/lldockablefloater.cpp
@@ -162,10 +162,15 @@ void LLDockableFloater::setVisible(BOOL visible)
void LLDockableFloater::setMinimized(BOOL minimize)
{
- if(minimize)
+ if(minimize && isDocked())
{
+ // minimizing a docked floater just hides it
setVisible(FALSE);
}
+ else
+ {
+ LLFloater::setMinimized(minimize);
+ }
}
LLView * LLDockableFloater::getDockWidget()
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index d1d840729d..7100ea13a7 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -165,6 +165,7 @@ LLFloater::Params::Params()
: title("title"),
short_title("short_title"),
single_instance("single_instance", false),
+ reuse_instance("reuse_instance", false),
can_resize("can_resize", false),
can_minimize("can_minimize", true),
can_close("can_close", true),
@@ -174,6 +175,7 @@ LLFloater::Params::Params()
save_rect("save_rect", false),
save_visibility("save_visibility", false),
can_dock("can_dock", false),
+ show_title("show_title", true),
open_positioning("open_positioning", LLFloaterEnums::OPEN_POSITIONING_NONE),
specified_left("specified_left"),
specified_bottom("specified_bottom"),
@@ -238,6 +240,7 @@ LLFloater::LLFloater(const LLSD& key, const LLFloater::Params& p)
mTitle(p.title),
mShortTitle(p.short_title),
mSingleInstance(p.single_instance),
+ mReuseInstance(p.reuse_instance.isProvided() ? p.reuse_instance : p.single_instance), // reuse single-instance floaters by default
mKey(key),
mCanTearOff(p.can_tear_off),
mCanMinimize(p.can_minimize),
@@ -538,7 +541,6 @@ LLFloater::~LLFloater()
delete mResizeHandle[i];
}
- storeRectControl();
setVisible(false); // We're not visible if we're destroyed
storeVisibilityControl();
storeDockStateControl();
@@ -683,7 +685,12 @@ void LLFloater::openFloater(const LLSD& key)
}
else
{
- applyControlsAndPosition(LLFloaterReg::getLastFloaterCascading());
+ LLFloater* floater_to_stack = LLFloaterReg::getLastFloaterInGroup(mInstanceName);
+ if (!floater_to_stack)
+ {
+ floater_to_stack = LLFloaterReg::getLastFloaterCascading();
+ }
+ applyControlsAndPosition(floater_to_stack);
setMinimized(FALSE);
setVisibleAndFrontmost(mAutoFocus);
}
@@ -776,12 +783,19 @@ void LLFloater::closeFloater(bool app_quitting)
else
{
setVisible(FALSE);
+ if (!mReuseInstance)
+ {
+ destroy();
+ }
}
}
else
{
setVisible(FALSE); // hide before destroying (so handleVisibilityChange() gets called)
- destroy();
+ if (!mReuseInstance)
+ {
+ destroy();
+ }
}
}
}
@@ -861,9 +875,16 @@ bool LLFloater::applyRectControl()
{
bool saved_rect = false;
- // If we have a saved rect, use it
- if (mRectControl.size() > 1)
+ LLFloater* last_in_group = LLFloaterReg::getLastFloaterInGroup(mInstanceName);
+ if (last_in_group && last_in_group != this)
{
+ // other floaters in our group, position ourselves relative to them and don't save the rect
+ mRectControl.clear();
+ mOpenPositioning = LLFloaterEnums::OPEN_POSITIONING_CASCADE_GROUP;
+ }
+ else if (mRectControl.size() > 1)
+ {
+ // If we have a saved rect, use it
const LLRect& rect = getControlGroup()->getRect(mRectControl);
saved_rect = rect.notEmpty();
if (saved_rect)
@@ -912,6 +933,7 @@ void LLFloater::applyPositioning(LLFloater* other)
}
break;
+ case LLFloaterEnums::OPEN_POSITIONING_CASCADE_GROUP:
case LLFloaterEnums::OPEN_POSITIONING_CASCADING:
if (other != NULL)
{
@@ -1051,6 +1073,7 @@ void LLFloater::handleReshape(const LLRect& new_rect, bool by_user)
if (by_user)
{
storeRectControl();
+ mOpenPositioning = LLFloaterEnums::OPEN_POSITIONING_NONE;
}
// if not minimized, adjust all snapped dependents to new shape
@@ -1142,10 +1165,6 @@ void LLFloater::setMinimized(BOOL minimize)
mButtonsEnabled[BUTTON_RESTORE] = TRUE;
}
- if (mDragHandle)
- {
- mDragHandle->setVisible(TRUE);
- }
setBorderVisible(TRUE);
for(handle_set_iter_t dependent_it = mDependents.begin();
@@ -1296,19 +1315,9 @@ void LLFloater::setIsChrome(BOOL is_chrome)
mButtons[BUTTON_CLOSE]->setToolTip(LLStringExplicit(getButtonTooltip(Params(), BUTTON_CLOSE, is_chrome)));
}
- // no titles displayed on "chrome" floaters
- if (mDragHandle)
- mDragHandle->setTitleVisible(!is_chrome);
-
LLPanel::setIsChrome(is_chrome);
}
-void LLFloater::setTitleVisible(bool visible)
-{
- if (mDragHandle)
- mDragHandle->setTitleVisible(visible);
-}
-
// Change the draw style to account for the foreground state.
void LLFloater::setForeground(BOOL front)
{
@@ -1396,7 +1405,10 @@ void LLFloater::moveResizeHandlesToFront()
BOOL LLFloater::isFrontmost()
{
- return gFloaterView && gFloaterView->getFrontmost() == this && getVisible();
+ LLFloaterView* floater_view = getParentByType<LLFloaterView>();
+ return getVisible()
+ && (floater_view
+ && floater_view->getFrontmost() == this);
}
void LLFloater::addDependentFloater(LLFloater* floaterp, BOOL reposition)
@@ -1469,6 +1481,7 @@ BOOL LLFloater::handleMouseDown(S32 x, S32 y, MASK mask)
if(offerClickToButton(x, y, mask, BUTTON_CLOSE)) return TRUE;
if(offerClickToButton(x, y, mask, BUTTON_RESTORE)) return TRUE;
if(offerClickToButton(x, y, mask, BUTTON_TEAR_OFF)) return TRUE;
+ if(offerClickToButton(x, y, mask, BUTTON_DOCK)) return TRUE;
// Otherwise pass to drag handle for movement
return mDragHandle->handleMouseDown(x, y, mask);
@@ -1574,6 +1587,13 @@ void LLFloater::setDocked(bool docked, bool pop_on_undock)
{
mDocked = docked;
mButtonsEnabled[BUTTON_DOCK] = !mDocked;
+
+ if (mDocked)
+ {
+ setMinimized(FALSE);
+ mOpenPositioning = LLFloaterEnums::OPEN_POSITIONING_NONE;
+ }
+
updateTitleButtons();
storeDockStateControl();
@@ -1812,7 +1832,7 @@ void LLFloater::draw()
{
drawChild(mButtons[i]);
}
- drawChild(mDragHandle);
+ drawChild(mDragHandle, 0, 0, TRUE);
}
else
{
@@ -2963,6 +2983,7 @@ void LLFloater::initFromParams(const LLFloater::Params& p)
mHeaderHeight = p.header_height;
mLegacyHeaderHeight = p.legacy_header_height;
mSingleInstance = p.single_instance;
+ mReuseInstance = p.reuse_instance.isProvided() ? p.reuse_instance : p.single_instance;
mOpenPositioning = p.open_positioning;
mSpecifiedLeft = p.specified_left;
@@ -2991,6 +3012,11 @@ void LLFloater::initFromParams(const LLFloater::Params& p)
{
setCloseCallback(initCommitCallback(p.close_callback));
}
+
+ if (mDragHandle)
+ {
+ mDragHandle->setTitleVisible(p.show_title);
+ }
}
boost::signals2::connection LLFloater::setMinimizeCallback( const commit_signal_t::slot_type& cb )
@@ -3239,7 +3265,6 @@ void LLFloater::stackWith(LLFloater& other)
next_rect.setLeftTopAndSize(next_rect.mLeft, next_rect.mTop, getRect().getWidth(), getRect().getHeight());
- mRectControl.clear(); // don't save rect of stacked floaters
setShape(next_rect);
}
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index 8beb11507e..73e9c9e831 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -66,9 +66,9 @@ namespace LLFloaterEnums
{
OPEN_POSITIONING_NONE,
OPEN_POSITIONING_CASCADING,
+ OPEN_POSITIONING_CASCADE_GROUP,
OPEN_POSITIONING_CENTERED,
OPEN_POSITIONING_SPECIFIED,
-
OPEN_POSITIONING_COUNT
};
}
@@ -120,6 +120,7 @@ public:
short_title;
Optional<bool> single_instance,
+ reuse_instance,
can_resize,
can_minimize,
can_close,
@@ -128,7 +129,8 @@ public:
save_rect,
save_visibility,
save_dock_state,
- can_dock;
+ can_dock,
+ show_title;
Optional<LLFloaterEnums::EOpenPositioning> open_positioning;
Optional<S32> specified_left;
@@ -209,7 +211,6 @@ public:
std::string getTitle() const;
void setShortTitle( const std::string& short_title );
std::string getShortTitle() const;
- void setTitleVisible(bool visible);
virtual void setMinimized(BOOL b);
void moveResizeHandlesToFront();
void addDependentFloater(LLFloater* dependent, BOOL reposition = TRUE);
@@ -409,6 +410,7 @@ private:
LLUIString mShortTitle;
BOOL mSingleInstance; // TRUE if there is only ever one instance of the floater
+ bool mReuseInstance; // true if we want to hide the floater when we close it instead of destroying it
std::string mInstanceName; // Store the instance name so we can remove ourselves from the list
BOOL mCanTearOff;
diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp
index 0edfc8da2d..e144b68f5e 100644
--- a/indra/llui/llfloaterreg.cpp
+++ b/indra/llui/llfloaterreg.cpp
@@ -167,6 +167,7 @@ LLFloater* LLFloaterReg::getInstance(const std::string& name, const LLSD& key)
res->setInstanceName(name);
LLFloater *last_floater = (list.empty() ? NULL : list.back());
+
res->applyControlsAndPosition(last_floater);
gFloaterView->adjustToFitScreen(res, false);
@@ -462,16 +463,16 @@ void LLFloaterReg::toggleInstanceOrBringToFront(const LLSD& sdname, const LLSD&
else if (instance->isMinimized())
{
instance->setMinimized(FALSE);
- instance->setFocus(TRUE);
+ instance->setVisibleAndFrontmost();
}
else if (!instance->isShown())
{
instance->openFloater(key);
- instance->setFocus(TRUE);
+ instance->setVisibleAndFrontmost();
}
- else if (!instance->hasFocus() && !instance->getIsChrome())
+ else if (!instance->isFrontmost())
{
- instance->setFocus(TRUE);
+ instance->setVisibleAndFrontmost();
}
else
{
diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index ceec9c7eb1..c1cd04186b 100644
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -57,6 +57,22 @@ LLKeywords::LLKeywords() : mLoaded(FALSE)
{
}
+inline BOOL LLKeywordToken::isTail(const llwchar* s) const
+{
+ BOOL res = TRUE;
+ const llwchar* t = mDelimiter.c_str();
+ S32 len = mDelimiter.size();
+ for (S32 i=0; i<len; i++)
+ {
+ if (s[i] != t[i])
+ {
+ res = FALSE;
+ break;
+ }
+ }
+ return res;
+}
+
LLKeywords::~LLKeywords()
{
std::for_each(mWordTokenMap.begin(), mWordTokenMap.end(), DeletePairedPointer());
@@ -106,6 +122,7 @@ BOOL LLKeywords::loadFromFile( const std::string& filename )
std::string SOL_LINE("[line ");
std::string SOL_ONE_SIDED_DELIMITER("[one_sided_delimiter ");
std::string SOL_TWO_SIDED_DELIMITER("[two_sided_delimiter ");
+ std::string SOL_DOUBLE_QUOTATION_MARKS("[double_quotation_marks ");
LLColor3 cur_color( 1, 0, 0 );
LLKeywordToken::TOKEN_TYPE cur_type = LLKeywordToken::WORD;
@@ -137,6 +154,12 @@ BOOL LLKeywords::loadFromFile( const std::string& filename )
cur_type = LLKeywordToken::TWO_SIDED_DELIMITER;
continue;
}
+ else if( line.find(SOL_DOUBLE_QUOTATION_MARKS) == 0 )
+ {
+ cur_color = readColor( line.substr(SOL_DOUBLE_QUOTATION_MARKS.size()) );
+ cur_type = LLKeywordToken::DOUBLE_QUOTATION_MARKS;
+ continue;
+ }
else if( line.find(SOL_ONE_SIDED_DELIMITER) == 0 )
{
cur_color = readColor( line.substr(SOL_ONE_SIDED_DELIMITER.size()) );
@@ -154,10 +177,26 @@ BOOL LLKeywords::loadFromFile( const std::string& filename )
if( !token_buffer.empty() && token_word_iter != word_tokens.end() )
{
- // first word is keyword
+ // first word is the keyword or a left delimiter
std::string keyword = (*token_word_iter);
LLStringUtil::trim(keyword);
+ // second word may be a right delimiter
+ std::string delimiter;
+ if (cur_type == LLKeywordToken::TWO_SIDED_DELIMITER)
+ {
+ while (delimiter.length() == 0 && ++token_word_iter != word_tokens.end())
+ {
+ delimiter = *token_word_iter;
+ LLStringUtil::trim(delimiter);
+ }
+ }
+ else if (cur_type == LLKeywordToken::DOUBLE_QUOTATION_MARKS)
+ {
+ // Closing delimiter is identical to the opening one.
+ delimiter = keyword;
+ }
+
// following words are tooltip
std::string tool_tip;
while (++token_word_iter != word_tokens.end())
@@ -170,11 +209,11 @@ BOOL LLKeywords::loadFromFile( const std::string& filename )
{
// Replace : with \n for multi-line tool tips.
LLStringUtil::replaceChar( tool_tip, ':', '\n' );
- addToken(cur_type, keyword, cur_color, tool_tip );
+ addToken(cur_type, keyword, cur_color, tool_tip, delimiter );
}
else
{
- addToken(cur_type, keyword, cur_color, LLStringUtil::null );
+ addToken(cur_type, keyword, cur_color, LLStringUtil::null, delimiter );
}
}
}
@@ -189,23 +228,26 @@ BOOL LLKeywords::loadFromFile( const std::string& filename )
void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
const std::string& key_in,
const LLColor3& color,
- const std::string& tool_tip_in )
+ const std::string& tool_tip_in,
+ const std::string& delimiter_in)
{
LLWString key = utf8str_to_wstring(key_in);
LLWString tool_tip = utf8str_to_wstring(tool_tip_in);
+ LLWString delimiter = utf8str_to_wstring(delimiter_in);
switch(type)
{
case LLKeywordToken::WORD:
- mWordTokenMap[key] = new LLKeywordToken(type, color, key, tool_tip);
+ mWordTokenMap[key] = new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null);
break;
case LLKeywordToken::LINE:
- mLineTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip));
+ mLineTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null));
break;
case LLKeywordToken::TWO_SIDED_DELIMITER:
+ case LLKeywordToken::DOUBLE_QUOTATION_MARKS:
case LLKeywordToken::ONE_SIDED_DELIMITER:
- mDelimiterTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip));
+ mDelimiterTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, delimiter));
break;
default:
@@ -357,7 +399,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
}
// cur is now at the first non-whitespace character of a new line
-
+
// Line start tokens
{
BOOL line_done = FALSE;
@@ -418,14 +460,15 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
S32 seg_end = 0;
seg_start = cur - base;
- cur += cur_delimiter->getLength();
+ cur += cur_delimiter->getLengthHead();
- if( cur_delimiter->getType() == LLKeywordToken::TWO_SIDED_DELIMITER )
+ LLKeywordToken::TOKEN_TYPE type = cur_delimiter->getType();
+ if( type == LLKeywordToken::TWO_SIDED_DELIMITER || type == LLKeywordToken::DOUBLE_QUOTATION_MARKS )
{
- while( *cur && !cur_delimiter->isHead(cur))
+ while( *cur && !cur_delimiter->isTail(cur))
{
// Check for an escape sequence.
- if (*cur == '\\')
+ if (type == LLKeywordToken::DOUBLE_QUOTATION_MARKS && *cur == '\\')
{
// Count the number of backslashes.
S32 num_backslashes = 0;
@@ -435,10 +478,10 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
between_delimiters++;
cur++;
}
- // Is the next character the end delimiter?
- if (cur_delimiter->isHead(cur))
+ // If the next character is the end delimiter?
+ if (cur_delimiter->isTail(cur))
{
- // Is there was an odd number of backslashes, then this delimiter
+ // If there was an odd number of backslashes, then this delimiter
// does not end the sequence.
if (num_backslashes % 2 == 1)
{
@@ -461,13 +504,13 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
if( *cur )
{
- cur += cur_delimiter->getLength();
- seg_end = seg_start + between_delimiters + 2 * cur_delimiter->getLength();
+ cur += cur_delimiter->getLengthHead();
+ seg_end = seg_start + between_delimiters + cur_delimiter->getLengthHead() + cur_delimiter->getLengthTail();
}
else
{
// eof
- seg_end = seg_start + between_delimiters + cur_delimiter->getLength();
+ seg_end = seg_start + between_delimiters + cur_delimiter->getLengthHead();
}
}
else
@@ -479,7 +522,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
between_delimiters++;
cur++;
}
- seg_end = seg_start + between_delimiters + cur_delimiter->getLength();
+ seg_end = seg_start + between_delimiters + cur_delimiter->getLengthHead();
}
insertSegments(wtext, *seg_list,cur_delimiter, text_len, seg_start, seg_end, defaultColor, editor);
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index f6d75b7e75..d050cd7d7c 100644
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -41,23 +41,44 @@ typedef LLPointer<LLTextSegment> LLTextSegmentPtr;
class LLKeywordToken
{
public:
- enum TOKEN_TYPE { WORD, LINE, TWO_SIDED_DELIMITER, ONE_SIDED_DELIMITER };
+ /**
+ * @brief Types of tokens/delimters being parsed.
+ *
+ * @desc Tokens/delimiters that need to be identified/highlighted. All are terminated if an EOF is encountered.
+ * - WORD are keywords in the normal sense, i.e. constants, events, etc.
+ * - LINE are for entire lines (currently only flow control labels use this).
+ * - ONE_SIDED_DELIMITER are for open-ended delimiters which are terminated by EOL.
+ * - TWO_SIDED_DELIMITER are for delimiters that end with a different delimiter than they open with.
+ * - DOUBLE_QUOTATION_MARKS are for delimiting areas using the same delimiter to open and close.
+ */
+ typedef enum TOKEN_TYPE
+ {
+ WORD,
+ LINE,
+ TWO_SIDED_DELIMITER,
+ ONE_SIDED_DELIMITER,
+ DOUBLE_QUOTATION_MARKS
+ };
- LLKeywordToken( TOKEN_TYPE type, const LLColor3& color, const LLWString& token, const LLWString& tool_tip )
+ LLKeywordToken( TOKEN_TYPE type, const LLColor3& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter )
:
mType( type ),
mToken( token ),
mColor( color ),
- mToolTip( tool_tip )
+ mToolTip( tool_tip ),
+ mDelimiter( delimiter ) // right delimiter
{
}
- S32 getLength() const { return mToken.size(); }
+ S32 getLengthHead() const { return mToken.size(); }
+ S32 getLengthTail() const { return mDelimiter.size(); }
BOOL isHead(const llwchar* s) const;
+ BOOL isTail(const llwchar* s) const;
const LLWString& getToken() const { return mToken; }
const LLColor3& getColor() const { return mColor; }
TOKEN_TYPE getType() const { return mType; }
const LLWString& getToolTip() const { return mToolTip; }
+ const LLWString& getDelimiter() const { return mDelimiter; }
#ifdef _DEBUG
void dump();
@@ -68,6 +89,7 @@ private:
LLWString mToken;
LLColor3 mColor;
LLWString mToolTip;
+ LLWString mDelimiter;
};
class LLKeywords
@@ -85,7 +107,8 @@ public:
void addToken(LLKeywordToken::TOKEN_TYPE type,
const std::string& key,
const LLColor3& color,
- const std::string& tool_tip = LLStringUtil::null);
+ const std::string& tool_tip = LLStringUtil::null,
+ const std::string& delimiter = LLStringUtil::null);
// This class is here as a performance optimization.
// The word token map used to be defined as std::map<LLWString, LLKeywordToken*>.
diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp
index 4991c4afa6..0e7060e22c 100644
--- a/indra/llui/lllayoutstack.cpp
+++ b/indra/llui/lllayoutstack.cpp
@@ -47,6 +47,19 @@ void LLLayoutStack::OrientationNames::declareValues()
//
// LLLayoutPanel
//
+LLLayoutPanel::Params::Params()
+: expanded_min_dim("expanded_min_dim", 0),
+ min_dim("min_dim", 0),
+ max_dim("max_dim", S32_MAX),
+ user_resize("user_resize", true),
+ auto_resize("auto_resize", true)
+{
+ addSynonym(min_dim, "min_width");
+ addSynonym(min_dim, "min_height");
+ addSynonym(max_dim, "max_width");
+ addSynonym(max_dim, "max_height");
+}
+
LLLayoutPanel::LLLayoutPanel(const Params& p)
: LLPanel(p),
mExpandedMinDimSpecified(false),
@@ -527,8 +540,8 @@ void LLLayoutStack::updateLayout(BOOL force_resize)
// not enough room to fit existing contents
if (force_resize == FALSE
// layout did not complete by reaching target position
- && ((mOrientation == VERTICAL && cur_y != -mPanelSpacing)
- || (mOrientation == HORIZONTAL && cur_x != getRect().getWidth() + mPanelSpacing)))
+ && ((mOrientation == VERTICAL && llround(cur_y) != -mPanelSpacing)
+ || (mOrientation == HORIZONTAL && llround(cur_x) != getRect().getWidth() + mPanelSpacing)))
{
// do another layout pass with all stacked elements contributing
// even those that don't usually resize
diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h
index 5d79505fc3..ede6149a80 100644
--- a/indra/llui/lllayoutstack.h
+++ b/indra/llui/lllayoutstack.h
@@ -161,18 +161,7 @@ public:
Optional<bool> user_resize,
auto_resize;
- Params()
- : expanded_min_dim("expanded_min_dim", 0),
- min_dim("min_dim", 0),
- max_dim("max_dim", 0),
- user_resize("user_resize", true),
- auto_resize("auto_resize", true)
- {
- addSynonym(min_dim, "min_width");
- addSynonym(min_dim, "min_height");
- addSynonym(max_dim, "max_width");
- addSynonym(max_dim, "max_height");
- }
+ Params();
};
~LLLayoutPanel();
diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp
index 9c6a76822c..ad1f3c504d 100644
--- a/indra/llui/lltabcontainer.cpp
+++ b/indra/llui/lltabcontainer.cpp
@@ -548,23 +548,23 @@ BOOL LLTabContainer::handleMouseDown( S32 x, S32 y, MASK mask )
}
S32 tab_count = getTabCount();
- if (tab_count > 0)
+ if (tab_count > 0 && !getTabsHidden())
{
LLTabTuple* firsttuple = getTab(0);
LLRect tab_rect;
if (mIsVertical)
{
tab_rect = LLRect(firsttuple->mButton->getRect().mLeft,
- has_scroll_arrows ? mPrevArrowBtn->getRect().mBottom - tabcntrv_pad : mPrevArrowBtn->getRect().mTop,
- firsttuple->mButton->getRect().mRight,
- has_scroll_arrows ? mNextArrowBtn->getRect().mTop + tabcntrv_pad : mNextArrowBtn->getRect().mBottom );
+ has_scroll_arrows ? mPrevArrowBtn->getRect().mBottom - tabcntrv_pad : mPrevArrowBtn->getRect().mTop,
+ firsttuple->mButton->getRect().mRight,
+ has_scroll_arrows ? mNextArrowBtn->getRect().mTop + tabcntrv_pad : mNextArrowBtn->getRect().mBottom );
}
else
{
tab_rect = LLRect(has_scroll_arrows ? mPrevArrowBtn->getRect().mRight : mJumpPrevArrowBtn->getRect().mLeft,
- firsttuple->mButton->getRect().mTop,
- has_scroll_arrows ? mNextArrowBtn->getRect().mLeft : mJumpNextArrowBtn->getRect().mRight,
- firsttuple->mButton->getRect().mBottom );
+ firsttuple->mButton->getRect().mTop,
+ has_scroll_arrows ? mNextArrowBtn->getRect().mLeft : mJumpNextArrowBtn->getRect().mRight,
+ firsttuple->mButton->getRect().mBottom );
}
if( tab_rect.pointInRect( x, y ) )
{
@@ -681,7 +681,7 @@ BOOL LLTabContainer::handleToolTip( S32 x, S32 y, MASK mask)
{
static LLUICachedControl<S32> tabcntrv_pad ("UITabCntrvPad", 0);
BOOL handled = LLPanel::handleToolTip( x, y, mask);
- if (!handled && getTabCount() > 0)
+ if (!handled && getTabCount() > 0 && !getTabsHidden())
{
LLTabTuple* firsttuple = getTab(0);
@@ -812,7 +812,9 @@ BOOL LLTabContainer::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, EDrag
{
BOOL has_scroll_arrows = (getMaxScrollPos() > 0);
- if( mDragAndDropDelayTimer.getStarted() && mDragAndDropDelayTimer.getElapsedTimeF32() > SCROLL_DELAY_TIME )
+ if( !getTabsHidden()
+ && mDragAndDropDelayTimer.getStarted()
+ && mDragAndDropDelayTimer.getElapsedTimeF32() > SCROLL_DELAY_TIME )
{
if (has_scroll_arrows)
{
diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp
index 629c7d9bc7..515605200e 100644
--- a/indra/llui/lltoolbar.cpp
+++ b/indra/llui/lltoolbar.cpp
@@ -217,7 +217,7 @@ bool LLToolBar::addCommand(const LLCommandId& commandId, int rank)
if ((rank >= mButtonCommands.size()) || (rank == RANK_NONE))
{
// In that case, back load
- mButtonCommands.push_back(commandId);
+ mButtonCommands.push_back(command->id());
mButtons.push_back(button);
}
else
@@ -232,7 +232,7 @@ bool LLToolBar::addCommand(const LLCommandId& commandId, int rank)
rank--;
}
// ...then insert
- mButtonCommands.insert(it_command,commandId);
+ mButtonCommands.insert(it_command, command->id());
mButtons.insert(it_button,button);
}
@@ -302,7 +302,50 @@ bool LLToolBar::enableCommand(const LLCommandId& commandId, bool enabled)
command_id_map::iterator it = mButtonMap.find(commandId.uuid());
if (it != mButtonMap.end())
{
- it->second->setEnabled(enabled);
+ command_button = it->second;
+ command_button->setEnabled(enabled);
+ }
+ }
+
+ return (command_button != NULL);
+}
+
+bool LLToolBar::stopCommandInProgress(const LLCommandId& commandId)
+{
+ //
+ // Note from Leslie:
+ //
+ // This implementation was largely put in place to handle EXP-1348 which is related to
+ // dragging and dropping the "speak" button. The "speak" button can be in one of two
+ // modes, i.e., either a toggle action or a push-to-talk action. Because of this it
+ // responds to mouse down and mouse up in different ways, based on which behavior the
+ // button is currently set to obey. This was the simplest way of getting the button
+ // to turn off the microphone for both behaviors without risking duplicate state.
+ //
+
+ LLToolBarButton * command_button = NULL;
+
+ if (commandId != LLCommandId::null)
+ {
+ LLCommand* command = LLCommandManager::instance().getCommand(commandId);
+ llassert(command);
+
+ // If this command has an explicit function for execution stop
+ if (command->executeStopFunctionName().length() > 0)
+ {
+ command_id_map::iterator it = mButtonMap.find(commandId.uuid());
+ if (it != mButtonMap.end())
+ {
+ command_button = it->second;
+ llassert(command_button->mIsRunningSignal);
+
+ // Check to see if it is running
+ if ((*command_button->mIsRunningSignal)(command_button, command->isRunningParameters()))
+ {
+ // Trigger an additional button commit, which calls mouse down, mouse up and commit
+ command_button->onCommit();
+ }
+ }
}
}
@@ -778,7 +821,7 @@ LLToolBarButton* LLToolBar::createButton(const LLCommandId& id)
if (!commandp) return NULL;
LLToolBarButton::Params button_p;
- button_p.name = id.name();
+ button_p.name = commandp->name();
button_p.label = LLTrans::getString(commandp->labelRef());
button_p.tool_tip = LLTrans::getString(commandp->tooltipRef());
button_p.image_overlay = LLUI::getUIImage(commandp->icon());
@@ -956,13 +999,13 @@ BOOL LLToolBarButton::handleHover(S32 x, S32 y, MASK mask)
{
if (!mIsDragged)
{
- mStartDragItemCallback(x,y,mId.uuid());
+ mStartDragItemCallback(x, y, this);
mIsDragged = true;
handled = TRUE;
}
else
{
- handled = mHandleDragItemCallback(x,y,mId.uuid(),LLAssetType::AT_WIDGET);
+ handled = mHandleDragItemCallback(x, y, mId.uuid(), LLAssetType::AT_WIDGET);
}
}
else
diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h
index 616710ea70..e634e57f93 100644
--- a/indra/llui/lltoolbar.h
+++ b/indra/llui/lltoolbar.h
@@ -36,8 +36,9 @@
#include "llassettype.h"
class LLToolBar;
+class LLToolBarButton;
-typedef boost::function<void (S32 x, S32 y, const LLUUID& uuid)> tool_startdrag_callback_t;
+typedef boost::function<void (S32 x, S32 y, LLToolBarButton* button)> tool_startdrag_callback_t;
typedef boost::function<BOOL (S32 x, S32 y, const LLUUID& uuid, LLAssetType::EType type)> tool_handledrag_callback_t;
typedef boost::function<BOOL (void* data, S32 x, S32 y, LLToolBar* toolbar)> tool_handledrop_callback_t;
@@ -185,6 +186,7 @@ public:
int removeCommand(const LLCommandId& commandId); // Returns the rank the removed command was at, RANK_NONE if not found
bool hasCommand(const LLCommandId& commandId) const;
bool enableCommand(const LLCommandId& commandId, bool enabled);
+ bool stopCommandInProgress(const LLCommandId& commandId);
void setStartDragCallback(tool_startdrag_callback_t cb) { mStartDragItemCallback = cb; }
void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; }
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index fdb84f1ec5..3fd7e48428 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -721,7 +721,7 @@ LLView* LLView::childrenHandleCharEvent(const std::string& desc, const METHOD& m
// XDATA might be MASK, or S32 clicks
template <typename METHOD, typename XDATA>
-LLView* LLView::childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra)
+LLView* LLView::childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra, bool allow_mouse_block)
{
BOOST_FOREACH(LLView* viewp, mChildList)
{
@@ -734,7 +734,7 @@ LLView* LLView::childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDA
}
if ((viewp->*method)( local_x, local_y, extra )
- || viewp->blockMouseEvent( local_x, local_y ))
+ || (allow_mouse_block && viewp->blockMouseEvent( local_x, local_y )))
{
viewp->logMouseEvent();
return viewp;
@@ -1021,7 +1021,7 @@ BOOL LLView::handleMiddleMouseUp(S32 x, S32 y, MASK mask)
LLView* LLView::childrenHandleScrollWheel(S32 x, S32 y, S32 clicks)
{
- return childrenHandleMouseEvent(&LLView::handleScrollWheel, x, y, clicks);
+ return childrenHandleMouseEvent(&LLView::handleScrollWheel, x, y, clicks, false);
}
// Called during downward traversal
diff --git a/indra/llui/llview.h b/indra/llui/llview.h
index 6d1dda90af..08828e55e6 100644
--- a/indra/llui/llview.h
+++ b/indra/llui/llview.h
@@ -565,7 +565,7 @@ protected:
private:
template <typename METHOD, typename XDATA>
- LLView* childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra);
+ LLView* childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra, bool allow_mouse_block = true);
template <typename METHOD, typename CHARTYPE>
LLView* childrenHandleCharEvent(const std::string& desc, const METHOD& method,
diff --git a/indra/llxuixml/llinitparam.h b/indra/llxuixml/llinitparam.h
index 1e295ada2d..183472450d 100644
--- a/indra/llxuixml/llinitparam.h
+++ b/indra/llxuixml/llinitparam.h
@@ -982,7 +982,7 @@ namespace LLInitParam
if (parser.readValue(name))
{
// try to parse a per type named value
- if (name_value_lookup_t::getValueFromName(name, typed_param.mValues))
+ if (name_value_lookup_t::getValueFromName(name, value))
{
typed_param.add(value);
typed_param.mValues.back().setValueName(name);
@@ -1013,7 +1013,7 @@ namespace LLInitParam
bool value_written = parser.writeValue(*it, name_stack);
if (!value_written)
{
- std::string calculated_key = typed_param.calcValueName(typed_param.getValue());
+ std::string calculated_key = it->calcValueName(key);
if (!parser.writeValue(calculated_key, name_stack))
{
break;
diff --git a/indra/llxuixml/llxuiparser.cpp b/indra/llxuixml/llxuiparser.cpp
index d4556113ea..878f992178 100644
--- a/indra/llxuixml/llxuiparser.cpp
+++ b/indra/llxuixml/llxuiparser.cpp
@@ -51,6 +51,14 @@ static LLInitParam::Parser::parser_read_func_map_t sXSDReadFuncs;
static LLInitParam::Parser::parser_write_func_map_t sXSDWriteFuncs;
static LLInitParam::Parser::parser_inspect_func_map_t sXSDInspectFuncs;
+static LLInitParam::Parser::parser_read_func_map_t sSimpleXUIReadFuncs;
+static LLInitParam::Parser::parser_write_func_map_t sSimpleXUIWriteFuncs;
+static LLInitParam::Parser::parser_inspect_func_map_t sSimpleXUIInspectFuncs;
+
+const char* NO_VALUE_MARKER = "no_value";
+
+const S32 LINE_NUMBER_HERE = 0;
+
struct MaxOccur : public LLInitParam::ChoiceBlock<MaxOccur>
{
Alternative<int> count;
@@ -1190,12 +1198,6 @@ struct ScopedFile
LLFILE* mFile;
};
-static LLInitParam::Parser::parser_read_func_map_t sSimpleXUIReadFuncs;
-static LLInitParam::Parser::parser_write_func_map_t sSimpleXUIWriteFuncs;
-static LLInitParam::Parser::parser_inspect_func_map_t sSimpleXUIInspectFuncs;
-
-const char* NO_VALUE_MARKER = "no_value";
-
LLSimpleXUIParser::LLSimpleXUIParser(LLSimpleXUIParser::element_start_callback_t element_cb)
: Parser(sSimpleXUIReadFuncs, sSimpleXUIWriteFuncs, sSimpleXUIInspectFuncs),
mCurReadDepth(0),
@@ -1300,6 +1302,11 @@ void LLSimpleXUIParser::characterDataHandler(void *userData, const char *s, int
self->characterData(s, len);
}
+void LLSimpleXUIParser::characterData(const char *s, int len)
+{
+ mTextContents += std::string(s, len);
+}
+
void LLSimpleXUIParser::startElement(const char *name, const char **atts)
{
processText();
@@ -1372,6 +1379,37 @@ void LLSimpleXUIParser::startElement(const char *name, const char **atts)
}
+void LLSimpleXUIParser::endElement(const char *name)
+{
+ bool has_text = processText();
+
+ // no text, attributes, or children
+ if (!has_text && mEmptyLeafNode.back())
+ {
+ // submit this as a valueless name (even though there might be text contents we haven't seen yet)
+ mCurAttributeValueBegin = NO_VALUE_MARKER;
+ mOutputStack.back().first->submitValue(mNameStack, *this, mParseSilently);
+ }
+
+ if (--mOutputStack.back().second == 0)
+ {
+ if (mOutputStack.empty())
+ {
+ LL_ERRS("ReadXUI") << "Parameter block output stack popped while empty." << LL_ENDL;
+ }
+ mOutputStack.pop_back();
+ }
+
+ S32 num_tokens_to_pop = mTokenSizeStack.back();
+ mTokenSizeStack.pop_back();
+ while(num_tokens_to_pop-- > 0)
+ {
+ mNameStack.pop_back();
+ }
+ mScope.pop_back();
+ mEmptyLeafNode.pop_back();
+}
+
bool LLSimpleXUIParser::readAttributes(const char **atts)
{
typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
@@ -1421,43 +1459,6 @@ bool LLSimpleXUIParser::processText()
return false;
}
-void LLSimpleXUIParser::endElement(const char *name)
-{
- bool has_text = processText();
-
- // no text, attributes, or children
- if (!has_text && mEmptyLeafNode.back())
- {
- // submit this as a valueless name (even though there might be text contents we haven't seen yet)
- mCurAttributeValueBegin = NO_VALUE_MARKER;
- mOutputStack.back().first->submitValue(mNameStack, *this, mParseSilently);
- }
-
- if (--mOutputStack.back().second == 0)
- {
- if (mOutputStack.empty())
- {
- LL_ERRS("ReadXUI") << "Parameter block output stack popped while empty." << LL_ENDL;
- }
- mOutputStack.pop_back();
- }
-
- S32 num_tokens_to_pop = mTokenSizeStack.back();
- mTokenSizeStack.pop_back();
- while(num_tokens_to_pop-- > 0)
- {
- mNameStack.pop_back();
- }
- mScope.pop_back();
- mEmptyLeafNode.pop_back();
-}
-
-void LLSimpleXUIParser::characterData(const char *s, int len)
-{
- mTextContents += std::string(s, len);
-}
-
-
/*virtual*/ std::string LLSimpleXUIParser::getCurrentElementName()
{
std::string full_name;
@@ -1471,8 +1472,6 @@ void LLSimpleXUIParser::characterData(const char *s, int len)
return full_name;
}
-const S32 LINE_NUMBER_HERE = 0;
-
void LLSimpleXUIParser::parserWarning(const std::string& message)
{
#ifdef LL_WINDOWS
diff --git a/indra/mac_crash_logger/llcrashloggermac.cpp b/indra/mac_crash_logger/llcrashloggermac.cpp
index b555e92b96..8f1c1a2dd0 100644..100755
--- a/indra/mac_crash_logger/llcrashloggermac.cpp
+++ b/indra/mac_crash_logger/llcrashloggermac.cpp
@@ -249,5 +249,6 @@ void LLCrashLoggerMac::updateApplication(const std::string& message)
bool LLCrashLoggerMac::cleanup()
{
+ commonCleanup();
return true;
}
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 7288bf6933..bef775cdb8 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -241,6 +241,7 @@ set(viewer_SOURCE_FILES
llfloatertopobjects.cpp
llfloatertos.cpp
llfloatertoybox.cpp
+ llfloatertranslationsettings.cpp
llfloateruipreview.cpp
llfloaterurlentry.cpp
llfloatervoiceeffect.cpp
@@ -807,6 +808,7 @@ set(viewer_HEADER_FILES
llfloatertopobjects.h
llfloatertos.h
llfloatertoybox.h
+ llfloatertranslationsettings.h
llfloateruipreview.h
llfloaterurlentry.h
llfloatervoiceeffect.h
@@ -1987,12 +1989,19 @@ if (LL_TESTS)
llmediadataclient.cpp
lllogininstance.cpp
llremoteparcelrequest.cpp
+ lltranslate.cpp
llviewerhelputil.cpp
llversioninfo.cpp
llworldmap.cpp
llworldmipmap.cpp
)
+ set_source_files_properties(
+ lltranslate.cpp
+ PROPERTIES
+ LL_TEST_ADDITIONAL_LIBRARIES "${JSONCPP_LIBRARIES}"
+ )
+
##################################################
# DISABLING PRECOMPILED HEADERS USAGE FOR TESTS
##################################################
diff --git a/indra/newview/app_settings/commands.xml b/indra/newview/app_settings/commands.xml
index 391a864846..a44b895f7b 100644
--- a/indra/newview/app_settings/commands.xml
+++ b/indra/newview/app_settings/commands.xml
@@ -10,7 +10,7 @@
is_running_function="Floater.IsOpen"
is_running_parameters="about_land"
/>
- <command name="appearance"
+ <command name="appearance"
available_in_toybox="true"
icon="Command_Appearance_Icon"
label_ref="Command_Appearance_Label"
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
index b5f105439c..82b43432eb 100644
--- a/indra/newview/app_settings/keywords.ini
+++ b/indra/newview/app_settings/keywords.ini
@@ -603,9 +603,11 @@ return Leave current function or event handler
# Comment
[one_sided_delimiter .8, .3, .15]
// Comment:Non-functional commentary or disabled code
+[two_sided_delimiter .8, .3, .15]
+/* */ Comment:Non-functional commentary or disabled code
# String literals
-[two_sided_delimiter 0, .2, 0]
+[double_quotation_marks 0, .2, 0]
" String literal
#functions are supplied by the program now
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 7396209e27..7cfbba3160 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -1836,7 +1836,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <integer>0</integer>
+ <integer>1</integer>
</map>
<key>Cursor3D</key>
<map>
@@ -4257,7 +4257,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <integer>1</integer>
+ <integer>0</integer>
</map>
<key>InventoryDisplayOutbox</key>
<map>
@@ -11014,6 +11014,39 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>TranslationService</key>
+ <map>
+ <key>Comment</key>
+ <string>Translation API to use. (google|bing)</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>String</string>
+ <key>Value</key>
+ <string>bing</string>
+ </map>
+ <key>GoogleTranslateAPIKey</key>
+ <map>
+ <key>Comment</key>
+ <string>Google Translate API key</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>String</string>
+ <key>Value</key>
+ <string></string>
+ </map>
+ <key>BingTranslateAPIKey</key>
+ <map>
+ <key>Comment</key>
+ <string>Bing AppID to use with the Microsoft Translator API</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>String</string>
+ <key>Value</key>
+ <string></string>
+ </map>
<key>TutorialURL</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 5d6b10c047..6641c80b94 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -393,7 +393,26 @@
max_attachment_offset="2.0"
visible_in_first_person="true" />
-
+ <attachment_point
+ id="39"
+ group="9"
+ pie_slice="1"
+ name="Neck"
+ joint="mNeck"
+ position="0 0 0"
+ rotation="0 0 0"
+ visible_in_first_person="true" />
+
+ <attachment_point
+ id="40"
+ group="9"
+ pie_slice="2"
+ name="Avatar Center"
+ joint="mRoot"
+ position="0 0 0"
+ rotation="0 0 0"
+ visible_in_first_person="true" />
+
<param
id="32"
group="1"
diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt
index 9ad313a9a7..9ad313a9a7 100644..100755
--- a/indra/newview/featuretable.txt
+++ b/indra/newview/featuretable.txt
diff --git a/indra/newview/installers/windows/lang_ru.nsi b/indra/newview/installers/windows/lang_ru.nsi
index 23a0252200..de7affe08a 100644
--- a/indra/newview/installers/windows/lang_ru.nsi
+++ b/indra/newview/installers/windows/lang_ru.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_tr.nsi b/indra/newview/installers/windows/lang_tr.nsi
index e5468c6e9d..5e7e3d797b 100644
--- a/indra/newview/installers/windows/lang_tr.nsi
+++ b/indra/newview/installers/windows/lang_tr.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_zh.nsi b/indra/newview/installers/windows/lang_zh.nsi
index f4fb70a726..ecf1185fbb 100644
--- a/indra/newview/installers/windows/lang_zh.nsi
+++ b/indra/newview/installers/windows/lang_zh.nsi
Binary files differ
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 773e20eda7..f8b204eca0 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -175,7 +175,9 @@ bool LLAgent::isActionAllowed(const LLSD& sdname)
}
else if (param == "speak")
{
- if ( gAgent.isVoiceConnected() )
+ if ( gAgent.isVoiceConnected() &&
+ LLViewerParcelMgr::getInstance()->allowAgentVoice() &&
+ ! LLVoiceClient::getInstance()->inTuningMode() )
{
retval = true;
}
@@ -305,13 +307,6 @@ LLAgent::LLAgent() :
mListener.reset(new LLAgentListener(*this));
mMoveTimer.stop();
-
- LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(boost::bind(&LLAgent::parcelChangedCallback));
-
- LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Agent.IsActionAllowed", boost::bind(&LLAgent::isActionAllowed, _2));
- LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Agent.PressMicrophone", boost::bind(&LLAgent::pressMicrophone, _2));
- LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Agent.ReleaseMicrophone", boost::bind(&LLAgent::releaseMicrophone, _2));
- LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Agent.IsMicrophoneOn", boost::bind(&LLAgent::isMicrophoneOn, _2));
}
// Requires gSavedSettings to be initialized.
@@ -333,6 +328,14 @@ void LLAgent::init()
gSavedSettings.getControl("PreferredMaturity")->getValidateSignal()->connect(boost::bind(&LLAgent::validateMaturity, this, _2));
gSavedSettings.getControl("PreferredMaturity")->getSignal()->connect(boost::bind(&LLAgent::handleMaturity, this, _2));
+
+ LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(boost::bind(&LLAgent::parcelChangedCallback));
+
+ LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Agent.IsActionAllowed", boost::bind(&LLAgent::isActionAllowed, _2));
+ LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Agent.PressMicrophone", boost::bind(&LLAgent::pressMicrophone, _2));
+ LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Agent.ReleaseMicrophone", boost::bind(&LLAgent::releaseMicrophone, _2));
+ LLUICtrl::EnableCallbackRegistry::currentRegistrar().add("Agent.IsMicrophoneOn", boost::bind(&LLAgent::isMicrophoneOn, _2));
+
mInitialized = TRUE;
}
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index e38f86d0fc..dc88c81d6a 100644..100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -89,6 +89,7 @@
#include "llweb.h"
#include "llsecondlifeurls.h"
#include "llupdaterservice.h"
+#include "llcallfloater.h"
// Linden library includes
#include "llavatarnamecache.h"
@@ -112,6 +113,7 @@
#include <boost/foreach.hpp>
+
#if LL_WINDOWS
# include <share.h> // For _SH_DENYWR in initMarkerFile
#else
@@ -1183,6 +1185,7 @@ bool LLAppViewer::mainLoop()
LLVoiceChannel::initClass();
LLVoiceClient::getInstance()->init(gServicePump);
+ LLVoiceChannel::setCurrentVoiceChannelChangedCallback(boost::bind(&LLCallFloater::sOnCurrentChannelChanged, _1), true);
LLTimer frameTimer,idleTimer;
LLTimer debugTime;
LLViewerJoystick* joystick(LLViewerJoystick::getInstance());
@@ -2822,48 +2825,15 @@ void LLAppViewer::initUpdater()
void LLAppViewer::checkForCrash(void)
{
-
#if LL_SEND_CRASH_REPORTS
if (gLastExecEvent == LAST_EXEC_FROZE)
{
- llinfos << "Last execution froze, requesting to send crash report." << llendl;
- //
- // Pop up a freeze or crash warning dialog
- //
- S32 choice;
- const S32 cb = gCrashSettings.getS32("CrashSubmitBehavior");
- if(cb == CRASH_BEHAVIOR_ASK)
- {
- std::ostringstream msg;
- msg << LLTrans::getString("MBFrozenCrashed");
- std::string alert = LLTrans::getString("APP_NAME") + " " + LLTrans::getString("MBAlert");
- choice = OSMessageBox(msg.str(),
- alert,
- OSMB_YESNO);
- }
- else if(cb == CRASH_BEHAVIOR_NEVER_SEND)
- {
- choice = OSBTN_NO;
- }
- else
- {
- choice = OSBTN_YES;
- }
-
- if (OSBTN_YES == choice)
- {
- llinfos << "Sending crash report." << llendl;
+ llinfos << "Last execution froze, sending a crash report." << llendl;
- bool report_freeze = true;
- handleCrashReporting(report_freeze);
- }
- else
- {
- llinfos << "Not sending crash report." << llendl;
- }
+ bool report_freeze = true;
+ handleCrashReporting(report_freeze);
}
#endif // LL_SEND_CRASH_REPORTS
-
}
//
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp
index cc2a189b76..e3217668c5 100644
--- a/indra/newview/llcallfloater.cpp
+++ b/indra/newview/llcallfloater.cpp
@@ -44,6 +44,7 @@
#include "llparticipantlist.h"
#include "llspeakers.h"
#include "lltextutil.h"
+#include "lltransientfloatermgr.h"
#include "llviewercontrol.h"
#include "llviewerdisplayname.h"
#include "llviewerwindow.h"
@@ -96,7 +97,7 @@ static void* create_non_avatar_caller(void*)
LLVoiceChannel* LLCallFloater::sCurrentVoiceChannel = NULL;
LLCallFloater::LLCallFloater(const LLSD& key)
-: LLFloater(key)
+: LLTransientDockableFloater(NULL, false, key)
, mSpeakerManager(NULL)
, mParticipants(NULL)
, mAvatarList(NULL)
@@ -112,6 +113,7 @@ LLCallFloater::LLCallFloater(const LLSD& key)
mFactoryMap["non_avatar_caller"] = LLCallbackMap(create_non_avatar_caller, NULL);
LLVoiceClient::instance().addObserver(this);
+ LLTransientFloaterMgr::getInstance()->addControlView(this);
// update the agent's name if display name setting change
LLAvatarNameCache::addUseDisplayNamesCallback(boost::bind(&LLCallFloater::updateAgentModeratorState, this));
@@ -134,6 +136,7 @@ LLCallFloater::~LLCallFloater()
{
LLVoiceClient::getInstance()->removeObserver(this);
}
+ LLTransientFloaterMgr::getInstance()->removeControlView(this);
}
// virtual
@@ -151,10 +154,6 @@ BOOL LLCallFloater::postBuild()
connectToChannel(LLVoiceChannel::getCurrentVoiceChannel());
- setIsChrome(true);
- //chrome="true" hides floater caption
- if (mDragHandle)
- mDragHandle->setTitleVisible(TRUE);
updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
updateSession();
diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h
index 7282f7a8be..00a3f76e56 100644
--- a/indra/newview/llcallfloater.h
+++ b/indra/newview/llcallfloater.h
@@ -28,7 +28,7 @@
#ifndef LL_LLCALLFLOATER_H
#define LL_LLCALLFLOATER_H
-#include "llfloater.h"
+#include "lltransientdockablefloater.h"
#include "llvoicechannel.h"
#include "llvoiceclient.h"
@@ -52,7 +52,7 @@ class LLSpeakersDelayActionsStorage;
* When the Resident is engaged in any chat except Nearby Chat, the Voice Control Panel
* also provides a 'Leave Call' button to allow the Resident to leave that voice channel.
*/
-class LLCallFloater : public LLFloater, LLVoiceClientParticipantObserver
+class LLCallFloater : public LLTransientDockableFloater, LLVoiceClientParticipantObserver
{
public:
@@ -262,6 +262,9 @@ private:
*/
static LLVoiceChannel* sCurrentVoiceChannel;
+ /* virtual */
+ LLTransientFloaterMgr::ETransientGroup getGroup() { return LLTransientFloaterMgr::IM; }
+
boost::signals2::connection mVoiceChannelStateChangeConnection;
};
diff --git a/indra/newview/lldebugview.cpp b/indra/newview/lldebugview.cpp
index cc6ba05e7e..ba511a3693 100644
--- a/indra/newview/lldebugview.cpp
+++ b/indra/newview/lldebugview.cpp
@@ -147,3 +147,12 @@ LLDebugView::~LLDebugView()
gTextureCategoryView = NULL;
}
+void LLDebugView::draw()
+{
+ LLView* floater_snap_region = getRootView()->getChildView("floater_snap_region");
+ LLRect debug_rect;
+ floater_snap_region->localRectToOtherView(floater_snap_region->getLocalRect(), &debug_rect, getParent());
+
+ setShape(debug_rect);
+ LLView::draw();
+}
diff --git a/indra/newview/lldebugview.h b/indra/newview/lldebugview.h
index 20262fc89e..907a42c981 100644
--- a/indra/newview/lldebugview.h
+++ b/indra/newview/lldebugview.h
@@ -55,6 +55,7 @@ public:
~LLDebugView();
void init();
+ void draw();
void setStatsVisible(BOOL visible);
diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 22f500ba15..83fb887d81 100644
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
@@ -384,6 +384,9 @@ void LLFloaterAbout::setSupportText(const std::string& server_release_notes_url)
// Render the LLSD from getInfo() as a format_map_t
LLStringUtil::format_map_t args;
+ // allow the "Release Notes" URL label to be localized
+ args["ReleaseNotes"] = LLTrans::getString("ReleaseNotes");
+
for (LLSD::map_const_iterator ii(info.beginMap()), iend(info.endMap());
ii != iend; ++ii)
{
diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp
index aa78bc4f29..b33dea4890 100644
--- a/indra/newview/llfloatercamera.cpp
+++ b/indra/newview/llfloatercamera.cpp
@@ -347,13 +347,12 @@ LLFloaterCamera::LLFloaterCamera(const LLSD& val)
mPrevMode(CAMERA_CTRL_MODE_PAN)
{
LLHints::registerHintTarget("view_popup", LLView::getHandle());
+ mCommitCallbackRegistrar.add("CameraPresets.ChangeView", boost::bind(&LLFloaterCamera::onClickCameraItem, _2));
}
// virtual
BOOL LLFloaterCamera::postBuild()
{
- setIsChrome(TRUE);
- setTitleVisible(TRUE); // restore title visibility after chrome applying
updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
mRotate = getChild<LLJoystickCameraRotate>(ORBIT);
diff --git a/indra/newview/llfloaterhud.cpp b/indra/newview/llfloaterhud.cpp
index 4181d1906e..58c76a0b85 100644
--- a/indra/newview/llfloaterhud.cpp
+++ b/indra/newview/llfloaterhud.cpp
@@ -54,14 +54,6 @@ LLFloaterHUD::LLFloaterHUD(const LLSD& key)
return;
}
- // Don't grab the focus as it will impede performing in-world actions
- // while using the HUD
- setIsChrome(TRUE);
-
- // Chrome doesn't show the window title by default, but here we
- // want to show it.
- setTitleVisible(true);
-
// Opaque background since we never get the focus
setBackgroundOpaque(TRUE);
}
diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp
index df769bdd88..9b9b90e521 100644
--- a/indra/newview/llfloaterinventory.cpp
+++ b/indra/newview/llfloaterinventory.cpp
@@ -98,3 +98,12 @@ void LLFloaterInventory::onOpen(const LLSD& key)
{
//LLFirstUse::useInventory();
}
+
+void LLFloaterInventory::onClose(bool app_quitting)
+{
+ LLFloater::onClose(app_quitting);
+ if (mKey.asInteger() > 1)
+ {
+ destroy();
+ }
+}
diff --git a/indra/newview/llfloaterinventory.h b/indra/newview/llfloaterinventory.h
index f59a015b07..823c4903b4 100644
--- a/indra/newview/llfloaterinventory.h
+++ b/indra/newview/llfloaterinventory.h
@@ -58,6 +58,7 @@ public:
// Inherited functionality
/*virtual*/ void onOpen(const LLSD& key);
+ /*virtual*/ void onClose(bool app_quitting);
LLInventoryPanel* getPanel();
LLPanelMainInventory* getMainInventoryPanel() { return mPanelMainInventory;}
diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp
index 8713513054..a65e9e911a 100644
--- a/indra/newview/llfloatermap.cpp
+++ b/indra/newview/llfloatermap.cpp
@@ -105,9 +105,6 @@ BOOL LLFloaterMap::postBuild()
// Get the drag handle all the way in back
sendChildToBack(getDragHandle());
- //setIsChrome(TRUE);
- //getDragHandle()->setTitleVisible(TRUE);
-
// keep onscreen
gFloaterView->adjustToFitScreen(this, FALSE);
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 5fdeb46daa..a333989e7e 100755
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -345,6 +345,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
mCommitCallbackRegistrar.add("Pref.MaturitySettings", boost::bind(&LLFloaterPreference::onChangeMaturity, this));
mCommitCallbackRegistrar.add("Pref.BlockList", boost::bind(&LLFloaterPreference::onClickBlockList, this));
mCommitCallbackRegistrar.add("Pref.Proxy", boost::bind(&LLFloaterPreference::onClickProxySettings, this));
+ mCommitCallbackRegistrar.add("Pref.TranslationSettings", boost::bind(&LLFloaterPreference::onClickTranslationSettings, this));
sSkin = gSavedSettings.getString("SkinCurrent");
@@ -599,6 +600,9 @@ void LLFloaterPreference::cancel()
}
// hide joystick pref floater
LLFloaterReg::hideInstance("pref_joystick");
+
+ // hide translation settings floater
+ LLFloaterReg::hideInstance("prefs_translation");
// cancel hardware menu
LLFloaterHardwareSettings* hardware_settings = LLFloaterReg::getTypedInstance<LLFloaterHardwareSettings>("prefs_hardware_settings");
@@ -1505,6 +1509,11 @@ void LLFloaterPreference::onClickProxySettings()
LLFloaterReg::showInstance("prefs_proxy");
}
+void LLFloaterPreference::onClickTranslationSettings()
+{
+ LLFloaterReg::showInstance("prefs_translation");
+}
+
void LLFloaterPreference::onClickActionChange()
{
mClickActionDirty = true;
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index 5c74e9f60c..7ee3294478 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -156,6 +156,7 @@ public:
void onChangeMaturity();
void onClickBlockList();
void onClickProxySettings();
+ void onClickTranslationSettings();
void applyUIColor(LLUICtrl* ctrl, const LLSD& param);
void getUIColor(LLUICtrl* ctrl, const LLSD& param);
diff --git a/indra/newview/llfloatersounddevices.cpp b/indra/newview/llfloatersounddevices.cpp
index 56c0806546..72c077d215 100644
--- a/indra/newview/llfloatersounddevices.cpp
+++ b/indra/newview/llfloatersounddevices.cpp
@@ -55,9 +55,6 @@ BOOL LLFloaterSoundDevices::postBuild()
{
LLTransientDockableFloater::postBuild();
- setIsChrome(TRUE);
- if (mDragHandle)
- mDragHandle->setTitleVisible(TRUE);
updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)
LLPanelVoiceDeviceSettings* panel = findChild<LLPanelVoiceDeviceSettings>("device_settings_panel");
diff --git a/indra/newview/llfloatertoybox.cpp b/indra/newview/llfloatertoybox.cpp
index b4c9894271..66f644748e 100644
--- a/indra/newview/llfloatertoybox.cpp
+++ b/indra/newview/llfloatertoybox.cpp
@@ -39,7 +39,6 @@
LLFloaterToybox::LLFloaterToybox(const LLSD& key)
: LLFloater(key)
- , mBtnRestoreDefaults(NULL)
, mToolBar(NULL)
{
mCommitCallbackRegistrar.add("Toybox.RestoreDefaults", boost::bind(&LLFloaterToybox::onBtnRestoreDefaults, this));
@@ -59,20 +58,19 @@ bool compare_localized_command_labels(LLCommand * cmd1, LLCommand * cmd2)
BOOL LLFloaterToybox::postBuild()
{
- mBtnRestoreDefaults = getChild<LLButton>("btn_restore_defaults");
mToolBar = getChild<LLToolBar>("toybox_toolbar");
+
mToolBar->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3));
mToolBar->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4));
mToolBar->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4));
- LLCommandManager& cmdMgr = LLCommandManager::instance();
-
//
// Sort commands by localized labels so they will appear alphabetized in all languages
//
std::list<LLCommand *> alphabetized_commands;
+ LLCommandManager& cmdMgr = LLCommandManager::instance();
for (U32 i = 0; i < cmdMgr.commandCount(); i++)
{
LLCommand * command = cmdMgr.getCommand(i);
diff --git a/indra/newview/llfloatertoybox.h b/indra/newview/llfloatertoybox.h
index f0a6cf1a8b..62bf68680d 100644
--- a/indra/newview/llfloatertoybox.h
+++ b/indra/newview/llfloatertoybox.h
@@ -53,7 +53,6 @@ protected:
void onBtnRestoreDefaults();
public:
- LLButton * mBtnRestoreDefaults;
LLToolBar * mToolBar;
};
diff --git a/indra/newview/llfloatertranslationsettings.cpp b/indra/newview/llfloatertranslationsettings.cpp
new file mode 100644
index 0000000000..959edff713
--- /dev/null
+++ b/indra/newview/llfloatertranslationsettings.cpp
@@ -0,0 +1,296 @@
+/**
+ * @file llfloatertranslationsettings.cpp
+ * @brief Machine translation settings for chat
+ *
+ * $LicenseInfo:firstyear=2011&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2011, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llfloatertranslationsettings.h"
+
+// Viewer includes
+#include "lltranslate.h"
+#include "llviewercontrol.h" // for gSavedSettings
+
+// Linden library includes
+#include "llbutton.h"
+#include "llcheckboxctrl.h"
+#include "llcombobox.h"
+#include "llfloaterreg.h"
+#include "lllineeditor.h"
+#include "llnotificationsutil.h"
+#include "llradiogroup.h"
+
+class EnteredKeyVerifier : public LLTranslate::KeyVerificationReceiver
+{
+public:
+ EnteredKeyVerifier(LLTranslate::EService service, bool alert)
+ : LLTranslate::KeyVerificationReceiver(service)
+ , mAlert(alert)
+ {
+ }
+
+private:
+ /*virtual*/ void setVerificationStatus(bool ok)
+ {
+ LLFloaterTranslationSettings* floater =
+ LLFloaterReg::getTypedInstance<LLFloaterTranslationSettings>("prefs_translation");
+
+ if (!floater)
+ {
+ llwarns << "Cannot find translation settings floater" << llendl;
+ return;
+ }
+
+ switch (getService())
+ {
+ case LLTranslate::SERVICE_BING:
+ floater->setBingVerified(ok, mAlert);
+ break;
+ case LLTranslate::SERVICE_GOOGLE:
+ floater->setGoogleVerified(ok, mAlert);
+ break;
+ }
+ }
+
+ bool mAlert;
+};
+
+LLFloaterTranslationSettings::LLFloaterTranslationSettings(const LLSD& key)
+: LLFloater(key)
+, mMachineTranslationCB(NULL)
+, mLanguageCombo(NULL)
+, mTranslationServiceRadioGroup(NULL)
+, mBingAPIKeyEditor(NULL)
+, mGoogleAPIKeyEditor(NULL)
+, mBingVerifyBtn(NULL)
+, mGoogleVerifyBtn(NULL)
+, mOKBtn(NULL)
+, mBingKeyVerified(false)
+, mGoogleKeyVerified(false)
+{
+}
+
+// virtual
+BOOL LLFloaterTranslationSettings::postBuild()
+{
+ mMachineTranslationCB = getChild<LLCheckBoxCtrl>("translate_chat_checkbox");
+ mLanguageCombo = getChild<LLComboBox>("translate_language_combo");
+ mTranslationServiceRadioGroup = getChild<LLRadioGroup>("translation_service_rg");
+ mBingAPIKeyEditor = getChild<LLLineEditor>("bing_api_key");
+ mGoogleAPIKeyEditor = getChild<LLLineEditor>("google_api_key");
+ mBingVerifyBtn = getChild<LLButton>("verify_bing_api_key_btn");
+ mGoogleVerifyBtn = getChild<LLButton>("verify_google_api_key_btn");
+ mOKBtn = getChild<LLButton>("ok_btn");
+
+ mMachineTranslationCB->setCommitCallback(boost::bind(&LLFloaterTranslationSettings::updateControlsEnabledState, this));
+ mTranslationServiceRadioGroup->setCommitCallback(boost::bind(&LLFloaterTranslationSettings::updateControlsEnabledState, this));
+ mOKBtn->setClickedCallback(boost::bind(&LLFloaterTranslationSettings::onBtnOK, this));
+ getChild<LLButton>("cancel_btn")->setClickedCallback(boost::bind(&LLFloater::closeFloater, this, false));
+ mBingVerifyBtn->setClickedCallback(boost::bind(&LLFloaterTranslationSettings::onBtnBingVerify, this));
+ mGoogleVerifyBtn->setClickedCallback(boost::bind(&LLFloaterTranslationSettings::onBtnGoogleVerify, this));
+
+ mBingAPIKeyEditor->setFocusReceivedCallback(boost::bind(&LLFloaterTranslationSettings::onEditorFocused, this, _1));
+ mBingAPIKeyEditor->setKeystrokeCallback(boost::bind(&LLFloaterTranslationSettings::onBingKeyEdited, this), NULL);
+ mGoogleAPIKeyEditor->setFocusReceivedCallback(boost::bind(&LLFloaterTranslationSettings::onEditorFocused, this, _1));
+ mGoogleAPIKeyEditor->setKeystrokeCallback(boost::bind(&LLFloaterTranslationSettings::onGoogleKeyEdited, this), NULL);
+
+ center();
+ return TRUE;
+}
+
+// virtual
+void LLFloaterTranslationSettings::onOpen(const LLSD& key)
+{
+ mMachineTranslationCB->setValue(gSavedSettings.getBOOL("TranslateChat"));
+ mLanguageCombo->setSelectedByValue(gSavedSettings.getString("TranslateLanguage"), TRUE);
+ mTranslationServiceRadioGroup->setSelectedByValue(gSavedSettings.getString("TranslationService"), TRUE);
+
+ std::string bing_key = gSavedSettings.getString("BingTranslateAPIKey");
+ if (!bing_key.empty())
+ {
+ mBingAPIKeyEditor->setText(bing_key);
+ mBingAPIKeyEditor->setTentative(FALSE);
+ verifyKey(LLTranslate::SERVICE_BING, bing_key, false);
+ }
+ else
+ {
+ mBingAPIKeyEditor->setTentative(TRUE);
+ mBingKeyVerified = FALSE;
+ }
+
+ std::string google_key = gSavedSettings.getString("GoogleTranslateAPIKey");
+ if (!google_key.empty())
+ {
+ mGoogleAPIKeyEditor->setText(google_key);
+ mGoogleAPIKeyEditor->setTentative(FALSE);
+ verifyKey(LLTranslate::SERVICE_GOOGLE, google_key, false);
+ }
+ else
+ {
+ mGoogleAPIKeyEditor->setTentative(TRUE);
+ mGoogleKeyVerified = FALSE;
+ }
+
+ updateControlsEnabledState();
+}
+
+void LLFloaterTranslationSettings::setBingVerified(bool ok, bool alert)
+{
+ if (alert)
+ {
+ showAlert(ok ? "bing_api_key_verified" : "bing_api_key_not_verified");
+ }
+
+ mBingKeyVerified = ok;
+ updateControlsEnabledState();
+}
+
+void LLFloaterTranslationSettings::setGoogleVerified(bool ok, bool alert)
+{
+ if (alert)
+ {
+ showAlert(ok ? "google_api_key_verified" : "google_api_key_not_verified");
+ }
+
+ mGoogleKeyVerified = ok;
+ updateControlsEnabledState();
+}
+
+std::string LLFloaterTranslationSettings::getSelectedService() const
+{
+ return mTranslationServiceRadioGroup->getSelectedValue().asString();
+}
+
+std::string LLFloaterTranslationSettings::getEnteredBingKey() const
+{
+ return mBingAPIKeyEditor->getTentative() ? LLStringUtil::null : mBingAPIKeyEditor->getText();
+}
+
+std::string LLFloaterTranslationSettings::getEnteredGoogleKey() const
+{
+ return mGoogleAPIKeyEditor->getTentative() ? LLStringUtil::null : mGoogleAPIKeyEditor->getText();
+}
+
+void LLFloaterTranslationSettings::showAlert(const std::string& msg_name) const
+{
+ LLSD args;
+ args["MESSAGE"] = getString(msg_name);
+ LLNotificationsUtil::add("GenericAlert", args);
+}
+
+void LLFloaterTranslationSettings::updateControlsEnabledState()
+{
+ // Enable/disable controls based on the checkbox value.
+ bool on = mMachineTranslationCB->getValue().asBoolean();
+ std::string service = getSelectedService();
+ bool bing_selected = service == "bing";
+ bool google_selected = service == "google";
+
+ mTranslationServiceRadioGroup->setEnabled(on);
+ mLanguageCombo->setEnabled(on);
+
+ getChild<LLTextBox>("bing_api_key_label")->setEnabled(on);
+ mBingAPIKeyEditor->setEnabled(on);
+
+ getChild<LLTextBox>("google_api_key_label")->setEnabled(on);
+ mGoogleAPIKeyEditor->setEnabled(on);
+
+ mBingAPIKeyEditor->setEnabled(on && bing_selected);
+ mGoogleAPIKeyEditor->setEnabled(on && google_selected);
+
+ mBingVerifyBtn->setEnabled(on && bing_selected &&
+ !mBingKeyVerified && !getEnteredBingKey().empty());
+ mGoogleVerifyBtn->setEnabled(on && google_selected &&
+ !mGoogleKeyVerified && !getEnteredGoogleKey().empty());
+
+ mOKBtn->setEnabled(
+ !on || (
+ (bing_selected && mBingKeyVerified) ||
+ (google_selected && mGoogleKeyVerified)
+ ));
+}
+
+void LLFloaterTranslationSettings::verifyKey(int service, const std::string& key, bool alert)
+{
+ LLTranslate::KeyVerificationReceiverPtr receiver =
+ new EnteredKeyVerifier((LLTranslate::EService) service, alert);
+ LLTranslate::verifyKey(receiver, key);
+}
+
+void LLFloaterTranslationSettings::onEditorFocused(LLFocusableElement* control)
+{
+ LLLineEditor* editor = dynamic_cast<LLLineEditor*>(control);
+ if (editor && editor->hasTabStop()) // if enabled. getEnabled() doesn't work
+ {
+ if (editor->getTentative())
+ {
+ editor->setText(LLStringUtil::null);
+ editor->setTentative(FALSE);
+ }
+ }
+}
+
+void LLFloaterTranslationSettings::onBingKeyEdited()
+{
+ if (mBingAPIKeyEditor->isDirty())
+ {
+ setBingVerified(false, false);
+ }
+}
+
+void LLFloaterTranslationSettings::onGoogleKeyEdited()
+{
+ if (mGoogleAPIKeyEditor->isDirty())
+ {
+ setGoogleVerified(false, false);
+ }
+}
+
+void LLFloaterTranslationSettings::onBtnBingVerify()
+{
+ std::string key = getEnteredBingKey();
+ if (!key.empty())
+ {
+ verifyKey(LLTranslate::SERVICE_BING, key);
+ }
+}
+
+void LLFloaterTranslationSettings::onBtnGoogleVerify()
+{
+ std::string key = getEnteredGoogleKey();
+ if (!key.empty())
+ {
+ verifyKey(LLTranslate::SERVICE_GOOGLE, key);
+ }
+}
+
+void LLFloaterTranslationSettings::onBtnOK()
+{
+ gSavedSettings.setBOOL("TranslateChat", mMachineTranslationCB->getValue().asBoolean());
+ gSavedSettings.setString("TranslateLanguage", mLanguageCombo->getSelectedValue().asString());
+ gSavedSettings.setString("TranslationService", getSelectedService());
+ gSavedSettings.setString("BingTranslateAPIKey", getEnteredBingKey());
+ gSavedSettings.setString("GoogleTranslateAPIKey", getEnteredGoogleKey());
+ closeFloater(false);
+}
diff --git a/indra/newview/llfloatertranslationsettings.h b/indra/newview/llfloatertranslationsettings.h
new file mode 100644
index 0000000000..9b47ad72ed
--- /dev/null
+++ b/indra/newview/llfloatertranslationsettings.h
@@ -0,0 +1,76 @@
+/**
+ * @file llfloatertranslationsettings.h
+ * @brief Machine translation settings for chat
+ *
+ * $LicenseInfo:firstyear=2011&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2011, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_LLFLOATERTRANSLATIONSETTINGS_H
+#define LL_LLFLOATERTRANSLATIONSETTINGS_H
+
+#include "llfloater.h"
+
+class LLButton;
+class LLCheckBoxCtrl;
+class LLComboBox;
+class LLLineEditor;
+class LLRadioGroup;
+
+class LLFloaterTranslationSettings : public LLFloater
+{
+public:
+ LLFloaterTranslationSettings(const LLSD& key);
+ /*virtual*/ BOOL postBuild();
+ /*virtual*/ void onOpen(const LLSD& key);
+
+ void setBingVerified(bool ok, bool alert);
+ void setGoogleVerified(bool ok, bool alert);
+
+private:
+ std::string getSelectedService() const;
+ std::string getEnteredBingKey() const;
+ std::string getEnteredGoogleKey() const;
+ void showAlert(const std::string& msg_name) const;
+ void updateControlsEnabledState();
+ void verifyKey(int service, const std::string& key, bool alert = true);
+
+ void onEditorFocused(LLFocusableElement* control);
+ void onBingKeyEdited();
+ void onGoogleKeyEdited();
+ void onBtnBingVerify();
+ void onBtnGoogleVerify();
+ void onBtnOK();
+
+ LLCheckBoxCtrl* mMachineTranslationCB;
+ LLComboBox* mLanguageCombo;
+ LLLineEditor* mBingAPIKeyEditor;
+ LLLineEditor* mGoogleAPIKeyEditor;
+ LLRadioGroup* mTranslationServiceRadioGroup;
+ LLButton* mBingVerifyBtn;
+ LLButton* mGoogleVerifyBtn;
+ LLButton* mOKBtn;
+
+ bool mBingKeyVerified;
+ bool mGoogleKeyVerified;
+};
+
+#endif // LL_LLFLOATERTRANSLATIONSETTINGS_H
diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp
index fa3f546157..2b9c113a72 100644
--- a/indra/newview/llglsandbox.cpp
+++ b/indra/newview/llglsandbox.cpp
@@ -240,7 +240,7 @@ void LLToolSelectRect::handleRectangleSelection(S32 x, S32 y, MASK mask)
gViewerWindow->setup3DRender();
}
-const F32 WIND_ALTITUDE = 180.f;
+const F32 WIND_RELATIVE_ALTITUDE = 25.f;
void LLWind::renderVectors()
{
@@ -254,13 +254,13 @@ void LLWind::renderVectors()
gGL.pushMatrix();
LLVector3 origin_agent;
origin_agent = gAgent.getPosAgentFromGlobal(mOriginGlobal);
- gGL.translatef(origin_agent.mV[VX], origin_agent.mV[VY], WIND_ALTITUDE);
+ gGL.translatef(origin_agent.mV[VX], origin_agent.mV[VY], gAgent.getPositionAgent().mV[VZ] + WIND_RELATIVE_ALTITUDE);
for (j = 0; j < mSize; j++)
{
for (i = 0; i < mSize; i++)
{
- x = mCloudVelX[i + j*mSize] * WIND_SCALE_HACK;
- y = mCloudVelY[i + j*mSize] * WIND_SCALE_HACK;
+ x = mVelX[i + j*mSize] * WIND_SCALE_HACK;
+ y = mVelY[i + j*mSize] * WIND_SCALE_HACK;
gGL.pushMatrix();
gGL.translatef((F32)i * region_width_meters/mSize, (F32)j * region_width_meters/mSize, 0.0);
gGL.color3f(0,1,0);
diff --git a/indra/newview/llhudeffectblob.cpp b/indra/newview/llhudeffectblob.cpp
index d8687eed8d..c909551b51 100644
--- a/indra/newview/llhudeffectblob.cpp
+++ b/indra/newview/llhudeffectblob.cpp
@@ -44,12 +44,20 @@ LLHUDEffectBlob::~LLHUDEffectBlob()
{
}
+void LLHUDEffectBlob::markDead()
+{
+ mImage = NULL;
+
+ LLHUDEffect::markDead();
+}
+
void LLHUDEffectBlob::render()
{
F32 time = mTimer.getElapsedTimeF32();
if (mDuration < time)
{
markDead();
+ return;
}
LLVector3 pos_agent = gAgent.getPosAgentFromGlobal(mPositionGlobal);
diff --git a/indra/newview/llhudeffectblob.h b/indra/newview/llhudeffectblob.h
index f4c1691108..ce3e8500fc 100644
--- a/indra/newview/llhudeffectblob.h
+++ b/indra/newview/llhudeffectblob.h
@@ -35,6 +35,8 @@ class LLHUDEffectBlob : public LLHUDEffect
public:
friend class LLHUDObject;
+ void markDead();
+
void setPixelSize(S32 pixels) { mPixelSize = pixels; }
protected:
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 67d745248f..3418462192 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -214,9 +214,10 @@ void LLNearbyChat::updateChatHistoryStyle()
//static
void LLNearbyChat::processChatHistoryStyleUpdate(const LLSD& newvalue)
{
- //LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat", LLSD());
- //if(nearby_chat)
- // nearby_chat->updateChatHistoryStyle();
+ LLFloater* chat_bar = LLFloaterReg::getInstance("chat_bar");
+ LLNearbyChat* nearby_chat = chat_bar->findChild<LLNearbyChat>("nearby_chat");
+ if(nearby_chat)
+ nearby_chat->updateChatHistoryStyle();
}
bool isWordsName(const std::string& name)
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index 3e4228cfb6..a811332261 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -53,6 +53,8 @@
S32 LLNearbyChatBar::sLastSpecialChatChannel = 0;
const S32 EXPANDED_HEIGHT = 300;
+const S32 COLLAPSED_HEIGHT = 60;
+const S32 EXPANDED_MIN_HEIGHT = 150;
// legacy callback glue
void send_chat_from_viewer(const std::string& utf8_out_text, EChatType type, S32 channel);
@@ -102,7 +104,7 @@ BOOL LLNearbyChatBar::postBuild()
// Register for font change notifications
LLViewerChat::setFontChangedCallback(boost::bind(&LLNearbyChatBar::onChatFontChange, this, _1));
- mExpandedHeight = getMinHeight() + EXPANDED_HEIGHT;
+ mExpandedHeight = COLLAPSED_HEIGHT + EXPANDED_HEIGHT;
enableResizeCtrls(true, true, false);
@@ -112,14 +114,19 @@ BOOL LLNearbyChatBar::postBuild()
bool LLNearbyChatBar::applyRectControl()
{
bool rect_controlled = LLFloater::applyRectControl();
-
- if (getRect().getHeight() > getMinHeight())
+
+ LLView* nearby_chat = getChildView("nearby_chat");
+ if (!nearby_chat->getVisible())
+ {
+ reshape(getRect().getWidth(), getMinHeight());
+ enableResizeCtrls(true, true, false);
+ }
+ else
{
- getChildView("nearby_chat")->setVisible(true);
- mExpandedHeight = getRect().getHeight();
enableResizeCtrls(true);
+ setResizeLimits(getMinWidth(), EXPANDED_MIN_HEIGHT);
}
-
+
return rect_controlled;
}
@@ -373,15 +380,19 @@ void LLNearbyChatBar::onToggleNearbyChatPanel()
if (nearby_chat->getVisible())
{
mExpandedHeight = getRect().getHeight();
+ setResizeLimits(getMinWidth(), COLLAPSED_HEIGHT);
nearby_chat->setVisible(FALSE);
- reshape(getRect().getWidth(), getMinHeight());
+ reshape(getRect().getWidth(), COLLAPSED_HEIGHT);
enableResizeCtrls(true, true, false);
+ storeRectControl();
}
else
{
nearby_chat->setVisible(TRUE);
+ setResizeLimits(getMinWidth(), EXPANDED_MIN_HEIGHT);
reshape(getRect().getWidth(), mExpandedHeight);
enableResizeCtrls(true);
+ storeRectControl();
}
}
diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
index 79171dbcb9..d3543daff0 100644
--- a/indra/newview/llpanelteleporthistory.cpp
+++ b/indra/newview/llpanelteleporthistory.cpp
@@ -389,6 +389,7 @@ LLTeleportHistoryPanel::~LLTeleportHistoryPanel()
{
LLTeleportHistoryFlatItemStorage::instance().purge();
delete mGearMenuHandle.get();
+ mTeleportHistoryChangedConnection.disconnect();
}
BOOL LLTeleportHistoryPanel::postBuild()
@@ -679,29 +680,32 @@ void LLTeleportHistoryPanel::refresh()
// tab_boundary_date would be earliest possible date for this tab
S32 tab_idx = 0;
getNextTab(date, tab_idx, tab_boundary_date);
-
- LLAccordionCtrlTab* tab = mItemContainers.get(mItemContainers.size() - 1 - tab_idx);
- tab->setVisible(true);
-
- // Expand all accordion tabs when filtering
- if(!sFilterSubString.empty())
+ tab_idx = mItemContainers.size() - 1 - tab_idx;
+ if (tab_idx >= 0)
{
- //store accordion tab state when filter is not empty
- tab->notifyChildren(LLSD().with("action","store_state"));
-
- tab->setDisplayChildren(true);
- }
- // Restore each tab's expand state when not filtering
- else
- {
- bool collapsed = isAccordionCollapsedByUser(tab);
- tab->setDisplayChildren(!collapsed);
+ LLAccordionCtrlTab* tab = mItemContainers.get(tab_idx);
+ tab->setVisible(true);
+
+ // Expand all accordion tabs when filtering
+ if(!sFilterSubString.empty())
+ {
+ //store accordion tab state when filter is not empty
+ tab->notifyChildren(LLSD().with("action","store_state"));
- //restore accordion state after all those accodrion tabmanipulations
- tab->notifyChildren(LLSD().with("action","restore_state"));
- }
+ tab->setDisplayChildren(true);
+ }
+ // Restore each tab's expand state when not filtering
+ else
+ {
+ bool collapsed = isAccordionCollapsedByUser(tab);
+ tab->setDisplayChildren(!collapsed);
+
+ //restore accordion state after all those accodrion tabmanipulations
+ tab->notifyChildren(LLSD().with("action","restore_state"));
+ }
- curr_flat_view = getFlatListViewFromTab(tab);
+ curr_flat_view = getFlatListViewFromTab(tab);
+ }
}
if (curr_flat_view)
@@ -760,7 +764,12 @@ void LLTeleportHistoryPanel::onTeleportHistoryChange(S32 removed_index)
void LLTeleportHistoryPanel::replaceItem(S32 removed_index)
{
// Flat list for 'Today' (mItemContainers keeps accordion tabs in reverse order)
- LLFlatListView* fv = getFlatListViewFromTab(mItemContainers[mItemContainers.size() - 1]);
+ LLFlatListView* fv = NULL;
+
+ if (mItemContainers.size() > 0)
+ {
+ fv = getFlatListViewFromTab(mItemContainers[mItemContainers.size() - 1]);
+ }
// Empty flat list for 'Today' means that other flat lists are empty as well,
// so all items from teleport history should be added.
@@ -828,19 +837,27 @@ void LLTeleportHistoryPanel::showTeleportHistory()
// Starting to add items from last one, in reverse order,
// since TeleportHistory keeps most recent item at the end
+ if (!mTeleportHistory)
+ {
+ mTeleportHistory = LLTeleportHistoryStorage::getInstance();
+ }
+
mCurrentItem = mTeleportHistory->getItems().size() - 1;
for (S32 n = mItemContainers.size() - 1; n >= 0; --n)
{
LLAccordionCtrlTab* tab = mItemContainers.get(n);
- tab->setVisible(false);
-
- LLFlatListView* fv = getFlatListViewFromTab(tab);
- if (fv)
+ if (tab)
{
- // Detached panels are managed by LLTeleportHistoryFlatItemStorage
- std::vector<LLPanel*> detached_items;
- fv->detachItems(detached_items);
+ tab->setVisible(false);
+
+ LLFlatListView* fv = getFlatListViewFromTab(tab);
+ if (fv)
+ {
+ // Detached panels are managed by LLTeleportHistoryFlatItemStorage
+ std::vector<LLPanel*> detached_items;
+ fv->detachItems(detached_items);
+ }
}
}
}
diff --git a/indra/newview/llteleporthistory.cpp b/indra/newview/llteleporthistory.cpp
index 0d8b45db1f..50a088b799 100644
--- a/indra/newview/llteleporthistory.cpp
+++ b/indra/newview/llteleporthistory.cpp
@@ -56,7 +56,8 @@ const std::string& LLTeleportHistoryItem::getTitle() const
LLTeleportHistory::LLTeleportHistory():
mCurrentItem(-1),
mRequestedItem(-1),
- mGotInitialUpdate(false)
+ mGotInitialUpdate(false),
+ mTeleportHistoryStorage(NULL)
{
mTeleportFinishedConn = LLViewerParcelMgr::getInstance()->
setTeleportFinishedCallback(boost::bind(&LLTeleportHistory::updateCurrentLocation, this, _1));
@@ -115,6 +116,10 @@ void LLTeleportHistory::handleLoginComplete()
void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)
{
+ if (!mTeleportHistoryStorage)
+ {
+ mTeleportHistoryStorage = LLTeleportHistoryStorage::getInstance();
+ }
if (mRequestedItem != -1) // teleport within the history in progress?
{
mCurrentItem = mRequestedItem;
@@ -152,7 +157,7 @@ void LLTeleportHistory::updateCurrentLocation(const LLVector3d& new_pos)
if (mCurrentItem < 0 || mCurrentItem >= (int) mItems.size()) // sanity check
{
llwarns << "Invalid current item. (this should not happen)" << llendl;
- llassert(!"Invalid current teleport histiry item");
+ llassert(!"Invalid current teleport history item");
return;
}
LLVector3 new_pos_local = gAgent.getPosAgentFromGlobal(new_pos);
diff --git a/indra/newview/llteleporthistory.h b/indra/newview/llteleporthistory.h
index e45dc28f9b..e9c29c39bf 100644
--- a/indra/newview/llteleporthistory.h
+++ b/indra/newview/llteleporthistory.h
@@ -33,6 +33,7 @@
#include <string>
#include <boost/function.hpp>
#include <boost/signals2.hpp>
+#include "llteleporthistorystorage.h"
/**
@@ -210,6 +211,8 @@ private:
*/
bool mGotInitialUpdate;
+ LLTeleportHistoryStorage* mTeleportHistoryStorage;
+
/**
* Signal emitted when the history gets changed.
*
diff --git a/indra/newview/llteleporthistorystorage.cpp b/indra/newview/llteleporthistorystorage.cpp
index 0ba455e7d5..af5a047da4 100644
--- a/indra/newview/llteleporthistorystorage.cpp
+++ b/indra/newview/llteleporthistorystorage.cpp
@@ -66,6 +66,7 @@ struct LLSortItemsByDate
LLTeleportHistoryStorage::LLTeleportHistoryStorage() :
mFilename("teleport_history.txt")
{
+ mItems.clear();
LLTeleportHistory *th = LLTeleportHistory::getInstance();
if (th)
th->setHistoryChangedCallback(boost::bind(&LLTeleportHistoryStorage::onTeleportHistoryChange, this));
diff --git a/indra/newview/llteleporthistorystorage.h b/indra/newview/llteleporthistorystorage.h
index 6cae0a3454..cf4c85a991 100644
--- a/indra/newview/llteleporthistorystorage.h
+++ b/indra/newview/llteleporthistorystorage.h
@@ -93,9 +93,6 @@ public:
void removeItem(S32 idx);
void save();
- void load();
-
- void dump() const;
/**
* Set a callback to be called upon history changes.
@@ -113,6 +110,9 @@ public:
private:
+ void load();
+ void dump() const;
+
void onTeleportHistoryChange();
bool compareByTitleAndGlobalPos(const LLTeleportHistoryPersistentItem& a, const LLTeleportHistoryPersistentItem& b);
diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp
index 6873cf058a..de305bf3d9 100644
--- a/indra/newview/lltoastnotifypanel.cpp
+++ b/indra/newview/lltoastnotifypanel.cpp
@@ -91,8 +91,6 @@ mCloseNotificationOnDestroy(true)
sFont = LLFontGL::getFontSansSerif();
sFontSmall = LLFontGL::getFontSansSerifSmall();
}
- // clicking on a button does not steal current focus
- setIsChrome(TRUE);
// initialize
setFocusRoot(!mIsTip);
// get a form for the notification
diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp
index 21e682f072..5d2cebe031 100644
--- a/indra/newview/lltoolbarview.cpp
+++ b/indra/newview/lltoolbarview.cpp
@@ -29,6 +29,7 @@
#include "lltoolbarview.h"
+#include "llappviewer.h"
#include "lldir.h"
#include "llxmlnode.h"
#include "lltoolbar.h"
@@ -36,12 +37,18 @@
#include "lltooldraganddrop.h"
#include "llclipboard.h"
+#include "llagent.h" // HACK for destinations guide on startup
+#include "llfloaterreg.h" // HACK for destinations guide on startup
+#include "llviewercontrol.h" // HACK for destinations guide on startup
+
#include <boost/foreach.hpp>
LLToolBarView* gToolBarView = NULL;
static LLDefaultChildRegistry::Register<LLToolBarView> r("toolbar_view");
+void handleLoginToolbarSetup();
+
bool isToolDragged()
{
return (LLToolDragAndDrop::getInstance()->getSource() == LLToolDragAndDrop::SOURCE_VIEWER);
@@ -63,7 +70,10 @@ LLToolBarView::LLToolBarView(const LLToolBarView::Params& p)
: LLUICtrl(p),
mToolbarLeft(NULL),
mToolbarRight(NULL),
- mToolbarBottom(NULL)
+ mToolbarBottom(NULL),
+ mDragStarted(false),
+ mDragToolbarButton(NULL),
+ mToolbarsLoaded(false)
{
}
@@ -95,6 +105,8 @@ BOOL LLToolBarView::postBuild()
mToolbarBottom->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3));
mToolbarBottom->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4));
mToolbarBottom->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4));
+
+ LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&handleLoginToolbarSetup));
return TRUE;
}
@@ -126,7 +138,7 @@ bool LLToolBarView::addCommand(const LLCommandId& command, LLToolBar* toolbar)
}
else
{
- llwarns << "Toolbars creation : the command " << command.name() << " cannot be found in the command manager" << llendl;
+ llwarns << "Toolbars creation : the command with id " << command.uuid().asString() << " cannot be found in the command manager" << llendl;
return false;
}
return true;
@@ -191,9 +203,12 @@ bool LLToolBarView::loadToolbars(bool force_default)
LLToolBarEnums::ButtonType button_type = toolbar_set.left_toolbar.button_display_mode;
mToolbarLeft->setButtonType(button_type);
}
- BOOST_FOREACH(LLCommandId::Params& command, toolbar_set.left_toolbar.commands)
+ BOOST_FOREACH(const LLCommandId::Params& command_name_param, toolbar_set.left_toolbar.commands)
{
- addCommand(LLCommandId(command),mToolbarLeft);
+ if (addCommand(LLCommandId(command_name_param), mToolbarLeft) == false)
+ {
+ llwarns << "Error adding command '" << command_name_param.name() << "' to left toolbar." << llendl;
+ }
}
}
if (toolbar_set.right_toolbar.isProvided() && mToolbarRight)
@@ -203,9 +218,12 @@ bool LLToolBarView::loadToolbars(bool force_default)
LLToolBarEnums::ButtonType button_type = toolbar_set.right_toolbar.button_display_mode;
mToolbarRight->setButtonType(button_type);
}
- BOOST_FOREACH(LLCommandId::Params& command, toolbar_set.right_toolbar.commands)
+ BOOST_FOREACH(const LLCommandId::Params& command_name_param, toolbar_set.right_toolbar.commands)
{
- addCommand(LLCommandId(command),mToolbarRight);
+ if (addCommand(LLCommandId(command_name_param), mToolbarRight) == false)
+ {
+ llwarns << "Error adding command '" << command_name_param.name() << "' to right toolbar." << llendl;
+ }
}
}
if (toolbar_set.bottom_toolbar.isProvided() && mToolbarBottom)
@@ -215,11 +233,15 @@ bool LLToolBarView::loadToolbars(bool force_default)
LLToolBarEnums::ButtonType button_type = toolbar_set.bottom_toolbar.button_display_mode;
mToolbarBottom->setButtonType(button_type);
}
- BOOST_FOREACH(LLCommandId::Params& command, toolbar_set.bottom_toolbar.commands)
+ BOOST_FOREACH(const LLCommandId::Params& command_name_param, toolbar_set.bottom_toolbar.commands)
{
- addCommand(LLCommandId(command),mToolbarBottom);
+ if (addCommand(LLCommandId(command_name_param), mToolbarBottom) == false)
+ {
+ llwarns << "Error adding command '" << command_name_param.name() << "' to bottom toolbar." << llendl;
+ }
}
}
+ mToolbarsLoaded = true;
return true;
}
@@ -231,6 +253,10 @@ bool LLToolBarView::loadDefaultToolbars()
if (gToolBarView)
{
retval = gToolBarView->loadToolbars(true);
+ if (retval)
+ {
+ gToolBarView->saveToolbars();
+ }
}
return retval;
@@ -238,6 +264,9 @@ bool LLToolBarView::loadDefaultToolbars()
void LLToolBarView::saveToolbars() const
{
+ if (!mToolbarsLoaded)
+ return;
+
// Build the parameter tree from the toolbar data
LLToolBarView::ToolbarSet toolbar_set;
if (mToolbarLeft)
@@ -278,13 +307,19 @@ void LLToolBarView::saveToolbars() const
// Enumerate the commands in command_list and add them as Params to the toolbar
void LLToolBarView::addToToolset(command_id_list_t& command_list, Toolbar& toolbar) const
{
+ LLCommandManager& mgr = LLCommandManager::instance();
+
for (command_id_list_t::const_iterator it = command_list.begin();
it != command_list.end();
++it)
{
- LLCommandId::Params command;
- command.name = it->name();
- toolbar.commands.add(command);
+ LLCommand* command = mgr.getCommand(*it);
+ if (command)
+ {
+ LLCommandId::Params command_name_param;
+ command_name_param.name = command->name();
+ toolbar.commands.add(command_name_param);
+ }
}
}
@@ -328,13 +363,11 @@ void LLToolBarView::draw()
// ----------------------------------------
-void LLToolBarView::startDragTool( S32 x, S32 y, const LLUUID& uuid)
+void LLToolBarView::startDragTool(S32 x, S32 y, LLToolBarButton* button)
{
+ resetDragTool(button);
+
// Flag the tool dragging but don't start it yet
- gToolBarView->mDragStarted = false;
- gToolBarView->mDragCommand = LLCommandId::null;
- gToolBarView->mDragRank = LLToolBar::RANK_NONE;
- gToolBarView->mDragToolbar = NULL;
LLToolDragAndDrop::getInstance()->setDragStart( x, y );
}
@@ -355,30 +388,12 @@ BOOL LLToolBarView::handleDragTool( S32 x, S32 y, const LLUUID& uuid, LLAssetTyp
LLToolDragAndDrop::ESource src = LLToolDragAndDrop::SOURCE_VIEWER;
LLUUID srcID;
LLToolDragAndDrop::getInstance()->beginMultiDrag(types, cargo_ids, src, srcID);
-
- // Second, check if the command is present in one of the 3 toolbars
- // If it is, store the command, the toolbar and the rank in the toolbar and
- // set a callback on end drag so that we reinsert the command if no drop happened
- /*
- gToolBarView->mDragCommand = LLCommandId(uuid);
- if ((gToolBarView->mDragRank = gToolBarView->mToolbarLeft->removeCommand(gToolBarView->mDragCommand)) != LLToolBar::RANK_NONE)
- {
- gToolBarView->mDragToolbar = gToolBarView->mToolbarLeft;
- }
- else if ((gToolBarView->mDragRank = gToolBarView->mToolbarRight->removeCommand(gToolBarView->mDragCommand)) != LLToolBar::RANK_NONE)
- {
- gToolBarView->mDragToolbar = gToolBarView->mToolbarRight;
- }
- else if ((gToolBarView->mDragRank = gToolBarView->mToolbarBottom->removeCommand(gToolBarView->mDragCommand)) != LLToolBar::RANK_NONE)
- {
- gToolBarView->mDragToolbar = gToolBarView->mToolbarBottom;
- }
- if (gToolBarView->mDragRank != LLToolBar::RANK_NONE)
- {
- llinfos << "Merov debug: rank of dragged tool = " << gToolBarView->mDragRank << llendl;
- LLToolDragAndDrop::getInstance()->setEndDragCallback(boost::bind(&LLToolBarView::onEndDrag, gToolBarView));
- }
- */
+
+ // Second, stop the command if it is in progress and requires stopping!
+ LLCommandId command_id = LLCommandId(uuid);
+ gToolBarView->mToolbarLeft->stopCommandInProgress(command_id);
+ gToolBarView->mToolbarRight->stopCommandInProgress(command_id);
+ gToolBarView->mToolbarBottom->stopCommandInProgress(command_id);
gToolBarView->mDragStarted = true;
return TRUE;
@@ -407,70 +422,52 @@ BOOL LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t
LLCommand* command = mgr.getCommand(command_id);
if (command)
{
- // Convert the (x,y) position in rank in toolbar
- int new_rank = LLToolBar::RANK_NONE;
- if (!toolbar->isReadOnly())
- {
- new_rank = toolbar->getRankFromPosition(x,y);
- }
// Suppress the command from the toolbars (including the one it's dropped in,
// this will handle move position).
- int old_rank = LLToolBar::RANK_NONE;
+ bool command_present = gToolBarView->hasCommand(command_id);
LLToolBar* old_toolbar = NULL;
- int rank;
- if ((rank = gToolBarView->mToolbarLeft->removeCommand(command_id)) != LLToolBar::RANK_NONE)
- {
- old_rank = rank;
- old_toolbar = gToolBarView->mToolbarLeft;
- }
- if ((rank = gToolBarView->mToolbarRight->removeCommand(command_id)) != LLToolBar::RANK_NONE)
- {
- old_rank = rank;
- old_toolbar = gToolBarView->mToolbarRight;
- }
- if ((rank = gToolBarView->mToolbarBottom->removeCommand(command_id)) != LLToolBar::RANK_NONE)
+
+ if (command_present)
{
- old_rank = rank;
- old_toolbar = gToolBarView->mToolbarBottom;
+ llassert(gToolBarView->mDragToolbarButton);
+ old_toolbar = gToolBarView->mDragToolbarButton->getParentByType<LLToolBar>();
+ if (old_toolbar->isReadOnly() && toolbar->isReadOnly())
+ {
+ // do nothing
+ }
+ else
+ {
+ gToolBarView->mToolbarBottom->removeCommand(command_id);
+ gToolBarView->mToolbarLeft->removeCommand(command_id);
+ gToolBarView->mToolbarRight->removeCommand(command_id);
+ }
}
- // Now insert it in the toolbar at the detected rank
+
+ // Convert the (x,y) position in rank in toolbar
if (!toolbar->isReadOnly())
{
- if ((old_toolbar == toolbar) && (old_rank != LLToolBar::RANK_NONE) && (old_rank < new_rank))
- {
- // If we just removed the command from the same toolbar, we need to consider that it might
- // change the target rank.
- new_rank -= 1;
- }
- toolbar->addCommand(command->id(),new_rank);
+ int new_rank = toolbar->getRankFromPosition(x,y);
+ toolbar->addCommand(command_id, new_rank);
}
+
+ // Save the new toolbars configuration
+ gToolBarView->saveToolbars();
}
else
{
llwarns << "Command couldn't be found in command manager" << llendl;
}
}
- stopDragTool();
+
+ resetDragTool(NULL);
return handled;
}
-void LLToolBarView::stopDragTool()
+void LLToolBarView::resetDragTool(LLToolBarButton* button)
{
// Clear the saved command, toolbar and rank
gToolBarView->mDragStarted = false;
- gToolBarView->mDragCommand = LLCommandId::null;
- gToolBarView->mDragRank = LLToolBar::RANK_NONE;
- gToolBarView->mDragToolbar = NULL;
-}
-
-void LLToolBarView::onEndDrag()
-{
- // If there's a saved command, reinsert it in the saved toolbar
- if (gToolBarView->mDragRank != LLToolBar::RANK_NONE)
- {
- gToolBarView->mDragToolbar->addCommand(gToolBarView->mDragCommand,gToolBarView->mDragRank);
- }
- stopDragTool();
+ gToolBarView->mDragToolbarButton = button;
}
void LLToolBarView::setToolBarsVisible(bool visible)
@@ -490,3 +487,18 @@ bool LLToolBarView::isModified() const
return modified;
}
+
+
+//
+// HACK to bring up destinations guide at startup
+//
+
+void handleLoginToolbarSetup()
+{
+ // Open the destinations guide by default on first login, per Rhett
+ if (gSavedSettings.getBOOL("FirstLoginThisInstall") || gAgent.isFirstLogin())
+ {
+ LLFloaterReg::showInstance("destinations");
+ }
+}
+
diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h
index 8b3af43875..2b26db3802 100644
--- a/indra/newview/lltoolbarview.h
+++ b/indra/newview/lltoolbarview.h
@@ -76,11 +76,10 @@ public:
static bool loadDefaultToolbars();
- static void startDragTool( S32 x, S32 y, const LLUUID& uuid);
- static BOOL handleDragTool( S32 x, S32 y, const LLUUID& uuid, LLAssetType::EType type);
- static BOOL handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* toolbar);
- static void stopDragTool();
- void onEndDrag();
+ static void startDragTool(S32 x, S32 y, LLToolBarButton* button);
+ static BOOL handleDragTool(S32 x, S32 y, const LLUUID& uuid, LLAssetType::EType type);
+ static BOOL handleDropTool(void* cargo_data, S32 x, S32 y, LLToolBar* toolbar);
+ static void resetDragTool(LLToolBarButton* button);
bool isModified() const;
@@ -99,11 +98,10 @@ private:
LLToolBar* mToolbarLeft;
LLToolBar* mToolbarRight;
LLToolBar* mToolbarBottom;
+ bool mToolbarsLoaded;
- LLCommandId mDragCommand;
- int mDragRank;
- LLToolBar* mDragToolbar;
- bool mDragStarted;
+ bool mDragStarted;
+ LLToolBarButton* mDragToolbarButton;
};
extern LLToolBarView* gToolBarView;
diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp
index 51c0e2eeed..6bc7c6de11 100644
--- a/indra/newview/lltoolmgr.cpp
+++ b/indra/newview/lltoolmgr.cpp
@@ -247,24 +247,10 @@ bool LLToolMgr::canEdit()
void LLToolMgr::toggleBuildMode()
{
- if (inBuildMode())
- {
- if (gSavedSettings.getBOOL("EditCameraMovement"))
- {
- // just reset the view, will pull us out of edit mode
- handle_reset_view();
- }
- else
- {
- // manually disable edit mode, but do not affect the camera
- gAgentCamera.resetView(false);
- LLFloaterReg::hideInstance("build");
- gViewerWindow->showCursor();
- }
- // avoid spurious avatar movements pulling out of edit mode
- LLViewerJoystick::getInstance()->setNeedsReset();
- }
- else
+ LLFloaterReg::toggleInstanceOrBringToFront("build");
+
+ bool build_visible = LLFloaterReg::instanceVisible("build");
+ if (build_visible)
{
ECameraMode camMode = gAgentCamera.getCameraMode();
if (CAMERA_MODE_MOUSELOOK == camMode || CAMERA_MODE_CUSTOMIZE_AVATAR == camMode)
@@ -291,7 +277,7 @@ void LLToolMgr::toggleBuildMode()
}
}
-
+
setCurrentToolset(gBasicToolset);
getCurrentToolset()->selectTool( LLToolCompCreate::getInstance() );
@@ -304,6 +290,24 @@ void LLToolMgr::toggleBuildMode()
LLViewerJoystick::getInstance()->setNeedsReset();
}
+ else
+ {
+ if (gSavedSettings.getBOOL("EditCameraMovement"))
+ {
+ // just reset the view, will pull us out of edit mode
+ handle_reset_view();
+ }
+ else
+ {
+ // manually disable edit mode, but do not affect the camera
+ gAgentCamera.resetView(false);
+ LLFloaterReg::hideInstance("build");
+ gViewerWindow->showCursor();
+ }
+ // avoid spurious avatar movements pulling out of edit mode
+ LLViewerJoystick::getInstance()->setNeedsReset();
+ }
+
}
bool LLToolMgr::inBuildMode()
diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp
index 983108391f..efe9bb8da7 100644
--- a/indra/newview/lltracker.cpp
+++ b/indra/newview/lltracker.cpp
@@ -53,10 +53,12 @@
#include "llinventorymodel.h"
#include "llinventoryobserver.h"
#include "lllandmarklist.h"
+#include "llprogressview.h"
#include "llsky.h"
#include "llui.h"
#include "llviewercamera.h"
#include "llviewerinventory.h"
+#include "llviewerwindow.h"
#include "llworld.h"
#include "llworldmapview.h"
#include "llviewercontrol.h"
@@ -111,6 +113,8 @@ void LLTracker::drawHUDArrow()
{
if (!gSavedSettings.getBOOL("RenderTrackerBeacon")) return;
+ if (gViewerWindow->getProgressView()->getVisible()) return;
+
static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white);
/* tracking autopilot destination has been disabled
diff --git a/indra/newview/lltranslate.cpp b/indra/newview/lltranslate.cpp
index 2f60b6b90b..7eb54271f4 100644
--- a/indra/newview/lltranslate.cpp
+++ b/indra/newview/lltranslate.cpp
@@ -31,82 +31,294 @@
#include <curl/curl.h>
#include "llbufferstream.h"
+#include "lltrans.h"
#include "llui.h"
#include "llversioninfo.h"
#include "llviewercontrol.h"
#include "reader.h"
-// These two are concatenated with the language specifiers to form a complete Google Translate URL
-const char* LLTranslate::m_GoogleURL = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=";
-const char* LLTranslate::m_GoogleLangSpec = "&langpair=";
-float LLTranslate::m_GoogleTimeout = 5;
+// virtual
+void LLGoogleTranslationHandler::getTranslateURL(
+ std::string &url,
+ const std::string &from_lang,
+ const std::string &to_lang,
+ const std::string &text) const
+{
+ url = std::string("https://www.googleapis.com/language/translate/v2?key=")
+ + getAPIKey() + "&q=" + LLURI::escape(text) + "&target=" + to_lang;
+ if (!from_lang.empty())
+ {
+ url += "&source=" + from_lang;
+ }
+}
-LLSD LLTranslate::m_Header;
-// These constants are for the GET header.
-const char* LLTranslate::m_AcceptHeader = "Accept";
-const char* LLTranslate::m_AcceptType = "text/plain";
-const char* LLTranslate::m_AgentHeader = "User-Agent";
+// virtual
+void LLGoogleTranslationHandler::getKeyVerificationURL(
+ std::string& url,
+ const std::string& key) const
+{
+ url = std::string("https://www.googleapis.com/language/translate/v2/languages?key=")
+ + key + "&target=en";
+}
-// These constants are in the JSON returned from Google
-const char* LLTranslate::m_GoogleData = "responseData";
-const char* LLTranslate::m_GoogleTranslation = "translatedText";
-const char* LLTranslate::m_GoogleLanguage = "detectedSourceLanguage";
+// virtual
+bool LLGoogleTranslationHandler::parseResponse(
+ int& status,
+ const std::string& body,
+ std::string& translation,
+ std::string& detected_lang,
+ std::string& err_msg) const
+{
+ Json::Value root;
+ Json::Reader reader;
-//static
-void LLTranslate::translateMessage(LLHTTPClient::ResponderPtr &result, const std::string &from_lang, const std::string &to_lang, const std::string &mesg)
+ if (!reader.parse(body, root))
+ {
+ err_msg = reader.getFormatedErrorMessages();
+ return false;
+ }
+
+ if (!root.isObject()) // empty response? should not happen
+ {
+ return false;
+ }
+
+ if (status != STATUS_OK)
+ {
+ // Request failed. Extract error message from the response.
+ parseErrorResponse(root, status, err_msg);
+ return false;
+ }
+
+ // Request succeeded, extract translation from the response.
+ return parseTranslation(root, translation, detected_lang);
+}
+
+// static
+void LLGoogleTranslationHandler::parseErrorResponse(
+ const Json::Value& root,
+ int& status,
+ std::string& err_msg)
{
- std::string url;
- getTranslateUrl(url, from_lang, to_lang, mesg);
+ const Json::Value& error = root.get("error", 0);
+ if (!error.isObject() || !error.isMember("message") || !error.isMember("code"))
+ {
+ return;
+ }
- std::string user_agent = llformat("%s %d.%d.%d (%d)",
- LLVersionInfo::getChannel().c_str(),
- LLVersionInfo::getMajor(),
- LLVersionInfo::getMinor(),
- LLVersionInfo::getPatch(),
- LLVersionInfo::getBuild());
+ err_msg = error["message"].asString();
+ status = error["code"].asInt();
+}
- if (!m_Header.size())
+// static
+bool LLGoogleTranslationHandler::parseTranslation(
+ const Json::Value& root,
+ std::string& translation,
+ std::string& detected_lang)
+{
+ // JsonCpp is prone to aborting the program on failed assertions,
+ // so be super-careful and verify the response format.
+ const Json::Value& data = root.get("data", 0);
+ if (!data.isObject() || !data.isMember("translations"))
{
- m_Header.insert(m_AcceptHeader, LLSD(m_AcceptType));
- m_Header.insert(m_AgentHeader, LLSD(user_agent));
+ return false;
+ }
+
+ const Json::Value& translations = data["translations"];
+ if (!translations.isArray() || translations.size() == 0)
+ {
+ return false;
+ }
+
+ const Json::Value& first = translations[0U];
+ if (!first.isObject() || !first.isMember("translatedText"))
+ {
+ return false;
}
- LLHTTPClient::get(url, result, m_Header, m_GoogleTimeout);
+ translation = first["translatedText"].asString();
+ detected_lang = first.get("detectedSourceLanguage", "").asString();
+ return true;
}
-//static
-void LLTranslate::getTranslateUrl(std::string &translate_url, const std::string &from_lang, const std::string &to_lang, const std::string &mesg)
+// static
+std::string LLGoogleTranslationHandler::getAPIKey()
+{
+ return gSavedSettings.getString("GoogleTranslateAPIKey");
+}
+
+// virtual
+void LLBingTranslationHandler::getTranslateURL(
+ std::string &url,
+ const std::string &from_lang,
+ const std::string &to_lang,
+ const std::string &text) const
{
- char * curl_str = curl_escape(mesg.c_str(), mesg.size());
- std::string const escaped_mesg(curl_str);
- curl_free(curl_str);
+ url = std::string("http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=")
+ + getAPIKey() + "&text=" + LLURI::escape(text) + "&to=" + to_lang;
+ if (!from_lang.empty())
+ {
+ url += "&from=" + from_lang;
+ }
+}
- translate_url = m_GoogleURL
- + escaped_mesg + m_GoogleLangSpec
- + from_lang // 'from' language; empty string for auto
- + "%7C" // |
- + to_lang; // 'to' language
+// virtual
+void LLBingTranslationHandler::getKeyVerificationURL(
+ std::string& url,
+ const std::string& key) const
+{
+ url = std::string("http://api.microsofttranslator.com/v2/Http.svc/GetLanguagesForTranslate?appId=")
+ + key;
}
-//static
-bool LLTranslate::parseGoogleTranslate(const std::string& body, std::string &translation, std::string &detected_language)
+// virtual
+bool LLBingTranslationHandler::parseResponse(
+ int& status,
+ const std::string& body,
+ std::string& translation,
+ std::string& detected_lang,
+ std::string& err_msg) const
{
- Json::Value root;
- Json::Reader reader;
-
- bool success = reader.parse(body, root);
- if (!success)
+ if (status != STATUS_OK)
{
- LL_WARNS("Translate") << "Non valid response from Google Translate API: '" << reader.getFormatedErrorMessages() << "'" << LL_ENDL;
+ static const std::string MSG_BEGIN_MARKER = "Message: ";
+ size_t begin = body.find(MSG_BEGIN_MARKER);
+ if (begin != std::string::npos)
+ {
+ begin += MSG_BEGIN_MARKER.size();
+ }
+ else
+ {
+ begin = 0;
+ err_msg.clear();
+ }
+ size_t end = body.find("</p>", begin);
+ err_msg = body.substr(begin, end-begin);
+ LLStringUtil::replaceString(err_msg, "&#xD;", ""); // strip CR
return false;
}
-
- translation = root[m_GoogleData].get(m_GoogleTranslation, "").asString();
- detected_language = root[m_GoogleData].get(m_GoogleLanguage, "").asString();
+
+ // Sample response: <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Hola</string>
+ size_t begin = body.find(">");
+ if (begin == std::string::npos || begin >= (body.size() - 1))
+ {
+ begin = 0;
+ }
+ else
+ {
+ ++begin;
+ }
+
+ size_t end = body.find("</string>", begin);
+
+ detected_lang = ""; // unsupported by this API
+ translation = body.substr(begin, end-begin);
+ LLStringUtil::replaceString(translation, "&#xD;", ""); // strip CR
return true;
}
+// static
+std::string LLBingTranslationHandler::getAPIKey()
+{
+ return gSavedSettings.getString("BingTranslateAPIKey");
+}
+
+LLTranslate::TranslationReceiver::TranslationReceiver(const std::string& from_lang, const std::string& to_lang)
+: mFromLang(from_lang)
+, mToLang(to_lang)
+, mHandler(LLTranslate::getPreferredHandler())
+{
+}
+
+// virtual
+void LLTranslate::TranslationReceiver::completedRaw(
+ U32 http_status,
+ const std::string& reason,
+ const LLChannelDescriptors& channels,
+ const LLIOPipe::buffer_ptr_t& buffer)
+{
+ LLBufferStream istr(channels, buffer.get());
+ std::stringstream strstrm;
+ strstrm << istr.rdbuf();
+
+ const std::string body = strstrm.str();
+ std::string translation, detected_lang, err_msg;
+ int status = http_status;
+ LL_DEBUGS("Translate") << "HTTP status: " << status << " " << reason << LL_ENDL;
+ LL_DEBUGS("Translate") << "Response body: " << body << LL_ENDL;
+ if (mHandler.parseResponse(status, body, translation, detected_lang, err_msg))
+ {
+ // Fix up the response
+ LLStringUtil::replaceString(translation, "&lt;", "<");
+ LLStringUtil::replaceString(translation, "&gt;",">");
+ LLStringUtil::replaceString(translation, "&quot;","\"");
+ LLStringUtil::replaceString(translation, "&#39;","'");
+ LLStringUtil::replaceString(translation, "&amp;","&");
+ LLStringUtil::replaceString(translation, "&apos;","'");
+
+ handleResponse(translation, detected_lang);
+ }
+ else
+ {
+ if (err_msg.empty())
+ {
+ err_msg = LLTrans::getString("TranslationResponseParseError");
+ }
+
+ llwarns << "Translation request failed: " << err_msg << llendl;
+ handleFailure(status, err_msg);
+ }
+}
+
+LLTranslate::KeyVerificationReceiver::KeyVerificationReceiver(EService service)
+: mService(service)
+{
+}
+
+LLTranslate::EService LLTranslate::KeyVerificationReceiver::getService() const
+{
+ return mService;
+}
+
+// virtual
+void LLTranslate::KeyVerificationReceiver::completedRaw(
+ U32 http_status,
+ const std::string& reason,
+ const LLChannelDescriptors& channels,
+ const LLIOPipe::buffer_ptr_t& buffer)
+{
+ bool ok = (http_status == 200);
+ setVerificationStatus(ok);
+}
+
+//static
+void LLTranslate::translateMessage(
+ TranslationReceiverPtr &receiver,
+ const std::string &from_lang,
+ const std::string &to_lang,
+ const std::string &mesg)
+{
+ std::string url;
+ receiver->mHandler.getTranslateURL(url, from_lang, to_lang, mesg);
+
+ LL_DEBUGS("Translate") << "Sending translation request: " << url << LL_ENDL;
+ sendRequest(url, receiver);
+}
+
+// static
+void LLTranslate::verifyKey(
+ KeyVerificationReceiverPtr& receiver,
+ const std::string& key)
+{
+ std::string url;
+ const LLTranslationAPIHandler& handler = getHandler(receiver->getService());
+ handler.getKeyVerificationURL(url, key);
+
+ LL_DEBUGS("Translate") << "Sending key verification request: " << url << LL_ENDL;
+ sendRequest(url, receiver);
+}
+
//static
std::string LLTranslate::getTranslateLanguage()
{
@@ -119,3 +331,52 @@ std::string LLTranslate::getTranslateLanguage()
return language;
}
+// static
+const LLTranslationAPIHandler& LLTranslate::getPreferredHandler()
+{
+ EService service = SERVICE_BING;
+
+ std::string service_str = gSavedSettings.getString("TranslationService");
+ if (service_str == "google")
+ {
+ service = SERVICE_GOOGLE;
+ }
+
+ return getHandler(service);
+}
+
+// static
+const LLTranslationAPIHandler& LLTranslate::getHandler(EService service)
+{
+ static LLGoogleTranslationHandler google;
+ static LLBingTranslationHandler bing;
+
+ if (service == SERVICE_GOOGLE)
+ {
+ return google;
+ }
+
+ return bing;
+}
+
+// static
+void LLTranslate::sendRequest(const std::string& url, LLHTTPClient::ResponderPtr responder)
+{
+ static const float REQUEST_TIMEOUT = 5;
+ static LLSD sHeader;
+
+ if (!sHeader.size())
+ {
+ std::string user_agent = llformat("%s %d.%d.%d (%d)",
+ LLVersionInfo::getChannel().c_str(),
+ LLVersionInfo::getMajor(),
+ LLVersionInfo::getMinor(),
+ LLVersionInfo::getPatch(),
+ LLVersionInfo::getBuild());
+
+ sHeader.insert("Accept", "text/plain");
+ sHeader.insert("User-Agent", user_agent);
+ }
+
+ LLHTTPClient::get(url, responder, sHeader, REQUEST_TIMEOUT);
+}
diff --git a/indra/newview/lltranslate.h b/indra/newview/lltranslate.h
index e85a42e878..c2330daa81 100644
--- a/indra/newview/lltranslate.h
+++ b/indra/newview/lltranslate.h
@@ -30,89 +30,257 @@
#include "llhttpclient.h"
#include "llbufferstream.h"
+namespace Json
+{
+ class Value;
+}
+
+/**
+ * Handler of an HTTP machine translation service.
+ *
+ * Derived classes know the service URL
+ * and how to parse the translation result.
+ */
+class LLTranslationAPIHandler
+{
+public:
+ /**
+ * Get URL for translation of the given string.
+ *
+ * Sending HTTP GET request to the URL will initiate translation.
+ *
+ * @param[out] url Place holder for the result.
+ * @param from_lang Source language. Leave empty for auto-detection.
+ * @param to_lang Target language.
+ * @param text Text to translate.
+ */
+ virtual void getTranslateURL(
+ std::string &url,
+ const std::string &from_lang,
+ const std::string &to_lang,
+ const std::string &text) const = 0;
+
+ /**
+ * Get URL to verify the given API key.
+ *
+ * Sending request to the URL verifies the key.
+ * Positive HTTP response (code 200) means that the key is valid.
+ *
+ * @param[out] url Place holder for the URL.
+ * @param[in] key Key to verify.
+ */
+ virtual void getKeyVerificationURL(
+ std::string &url,
+ const std::string &key) const = 0;
+
+ /**
+ * Parse translation response.
+ *
+ * @param[in,out] status HTTP status. May be modified while parsing.
+ * @param body Response text.
+ * @param[out] translation Translated text.
+ * @param[out] detected_lang Detected source language. May be empty.
+ * @param[out] err_msg Error message (in case of error).
+ */
+ virtual bool parseResponse(
+ int& status,
+ const std::string& body,
+ std::string& translation,
+ std::string& detected_lang,
+ std::string& err_msg) const = 0;
+
+ virtual ~LLTranslationAPIHandler() {}
+
+protected:
+ static const int STATUS_OK = 200;
+};
+
+/// Google Translate v2 API handler.
+class LLGoogleTranslationHandler : public LLTranslationAPIHandler
+{
+ LOG_CLASS(LLGoogleTranslationHandler);
+
+public:
+ /*virtual*/ void getTranslateURL(
+ std::string &url,
+ const std::string &from_lang,
+ const std::string &to_lang,
+ const std::string &text) const;
+ /*virtual*/ void getKeyVerificationURL(
+ std::string &url,
+ const std::string &key) const;
+ /*virtual*/ bool parseResponse(
+ int& status,
+ const std::string& body,
+ std::string& translation,
+ std::string& detected_lang,
+ std::string& err_msg) const;
+
+private:
+ static void parseErrorResponse(
+ const Json::Value& root,
+ int& status,
+ std::string& err_msg);
+ static bool parseTranslation(
+ const Json::Value& root,
+ std::string& translation,
+ std::string& detected_lang);
+ static std::string getAPIKey();
+};
+
+/// Microsoft Translator v2 API handler.
+class LLBingTranslationHandler : public LLTranslationAPIHandler
+{
+ LOG_CLASS(LLBingTranslationHandler);
+
+public:
+ /*virtual*/ void getTranslateURL(
+ std::string &url,
+ const std::string &from_lang,
+ const std::string &to_lang,
+ const std::string &text) const;
+ /*virtual*/ void getKeyVerificationURL(
+ std::string &url,
+ const std::string &key) const;
+ /*virtual*/ bool parseResponse(
+ int& status,
+ const std::string& body,
+ std::string& translation,
+ std::string& detected_lang,
+ std::string& err_msg) const;
+private:
+ static std::string getAPIKey();
+};
+
+/**
+ * Entry point for machine translation services.
+ *
+ * Basically, to translate a string, we need to know the URL
+ * of a translation service, have a valid API for the service
+ * and be given the target language.
+ *
+ * Callers specify the string to translate and the target language,
+ * LLTranslate takes care of the rest.
+ *
+ * API keys for translation are taken from saved settings.
+ */
class LLTranslate
{
LOG_CLASS(LLTranslate);
+
public :
+
+ typedef enum e_service {
+ SERVICE_BING,
+ SERVICE_GOOGLE,
+ } EService;
+
+ /**
+ * Subclasses are supposed to handle translation results (e.g. show them in chat)
+ */
class TranslationReceiver: public LLHTTPClient::Responder
{
- protected:
- TranslationReceiver(const std::string &from_lang, const std::string &to_lang)
- : m_fromLang(from_lang),
- m_toLang(to_lang)
- {
- }
+ public:
- virtual void handleResponse(const std::string &translation, const std::string &recognized_lang) {};
- virtual void handleFailure() {};
+ /**
+ * Using mHandler, parse incoming response.
+ *
+ * Calls either handleResponse() or handleFailure()
+ * depending on the HTTP status code and parsing success.
+ *
+ * @see handleResponse()
+ * @see handleFailure()
+ * @see mHandler
+ */
+ /*virtual*/ void completedRaw(
+ U32 http_status,
+ const std::string& reason,
+ const LLChannelDescriptors& channels,
+ const LLIOPipe::buffer_ptr_t& buffer);
- public:
- ~TranslationReceiver()
- {
- }
+ protected:
+ friend class LLTranslate;
- virtual void completedRaw( U32 status,
- const std::string& reason,
- const LLChannelDescriptors& channels,
- const LLIOPipe::buffer_ptr_t& buffer)
- {
- if (200 <= status && status < 300)
- {
- LLBufferStream istr(channels, buffer.get());
- std::stringstream strstrm;
- strstrm << istr.rdbuf();
+ /// Remember source and target languages for subclasses to be able to filter inappropriate results.
+ TranslationReceiver(const std::string& from_lang, const std::string& to_lang);
- const std::string result = strstrm.str();
- std::string translation;
- std::string detected_language;
+ /// Override point to handle successful translation.
+ virtual void handleResponse(const std::string &translation, const std::string &recognized_lang) = 0;
- if (!parseGoogleTranslate(result, translation, detected_language))
- {
- handleFailure();
- return;
- }
-
- // Fix up the response
- LLStringUtil::replaceString(translation, "&lt;", "<");
- LLStringUtil::replaceString(translation, "&gt;",">");
- LLStringUtil::replaceString(translation, "&quot;","\"");
- LLStringUtil::replaceString(translation, "&#39;","'");
- LLStringUtil::replaceString(translation, "&amp;","&");
- LLStringUtil::replaceString(translation, "&apos;","'");
+ /// Override point to handle unsuccessful translation.
+ virtual void handleFailure(int status, const std::string& err_msg) = 0;
- handleResponse(translation, detected_language);
- }
- else
- {
- LL_WARNS("Translate") << "HTTP request for Google Translate failed with status " << status << ", reason: " << reason << LL_ENDL;
- handleFailure();
- }
- }
+ std::string mFromLang;
+ std::string mToLang;
+ const LLTranslationAPIHandler& mHandler;
+ };
+
+ /**
+ * Subclasses are supposed to handle API key verification result.
+ */
+ class KeyVerificationReceiver: public LLHTTPClient::Responder
+ {
+ public:
+ EService getService() const;
protected:
- const std::string m_toLang;
- const std::string m_fromLang;
+ /**
+ * Save the translation service the key belongs to.
+ *
+ * Subclasses need to know it.
+ *
+ * @see getService()
+ */
+ KeyVerificationReceiver(EService service);
+
+ /**
+ * Parse verification response.
+ *
+ * Calls setVerificationStatus() with the verification status,
+ * which is true if HTTP status code is 200.
+ *
+ * @see setVerificationStatus()
+ */
+ /*virtual*/ void completedRaw(
+ U32 http_status,
+ const std::string& reason,
+ const LLChannelDescriptors& channels,
+ const LLIOPipe::buffer_ptr_t& buffer);
+
+ /**
+ * Override point for subclasses to handle key verification status.
+ */
+ virtual void setVerificationStatus(bool ok) = 0;
+
+ EService mService;
};
- static void translateMessage(LLHTTPClient::ResponderPtr &result, const std::string &from_lang, const std::string &to_lang, const std::string &mesg);
- static float m_GoogleTimeout;
- static std::string getTranslateLanguage();
+ typedef boost::intrusive_ptr<TranslationReceiver> TranslationReceiverPtr;
+ typedef boost::intrusive_ptr<KeyVerificationReceiver> KeyVerificationReceiverPtr;
-private:
- static void getTranslateUrl(std::string &translate_url, const std::string &from_lang, const std::string &to_lang, const std::string &text);
- static bool parseGoogleTranslate(const std::string& body, std::string &translation, std::string &detected_language);
+ /**
+ * Translate given text.
+ *
+ * @param receiver Object to pass translation result to.
+ * @param from_lang Source language. Leave empty for auto-detection.
+ * @param to_lang Target language.
+ * @param mesg Text to translate.
+ */
+ static void translateMessage(TranslationReceiverPtr &receiver, const std::string &from_lang, const std::string &to_lang, const std::string &mesg);
- static LLSD m_Header;
- static const char* m_GoogleURL;
- static const char* m_GoogleLangSpec;
- static const char* m_AcceptHeader;
- static const char* m_AcceptType;
- static const char* m_AgentHeader;
- static const char* m_UserAgent;
+ /**
+ * Verify given API key of a translation service.
+ *
+ * @param receiver Object to pass verification result to.
+ * @param key Key to verify.
+ */
+ static void verifyKey(KeyVerificationReceiverPtr& receiver, const std::string& key);
+ static std::string getTranslateLanguage();
- static const char* m_GoogleData;
- static const char* m_GoogleTranslation;
- static const char* m_GoogleLanguage;
+private:
+ static const LLTranslationAPIHandler& getPreferredHandler();
+ static const LLTranslationAPIHandler& getHandler(EService service);
+ static void sendRequest(const std::string& url, LLHTTPClient::ResponderPtr responder);
};
#endif
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index ba53540374..c761969fcf 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -107,6 +107,7 @@
#include "llfloatertos.h"
#include "llfloatertopobjects.h"
#include "llfloatertoybox.h"
+#include "llfloatertranslationsettings.h"
#include "llfloateruipreview.h"
#include "llfloatervoiceeffect.h"
#include "llfloaterwhitelistentry.h"
@@ -248,6 +249,7 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>);
LLFloaterReg::add("prefs_proxy", "floater_preferences_proxy.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreferenceProxy>);
LLFloaterReg::add("prefs_hardware_settings", "floater_hardware_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHardwareSettings>);
+ LLFloaterReg::add("prefs_translation", "floater_translation_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterTranslationSettings>);
LLFloaterReg::add("perm_prefs", "floater_perm_prefs.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPerms>);
LLFloaterReg::add("picks", "floater_picks.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);
LLFloaterReg::add("pref_joystick", "floater_joystick.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterJoystick>);
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 2345fbfd6a..0909714951 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -968,6 +968,10 @@ U32 info_display_from_string(std::string info_display)
{
return LLPipeline::RENDER_DEBUG_SCULPTED;
}
+ else if ("wind vectors" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_WIND_VECTORS;
+ }
else
{
return 0;
@@ -980,6 +984,8 @@ class LLAdvancedToggleInfoDisplay : public view_listener_t
{
U32 info_display = info_display_from_string( userdata.asString() );
+ LL_INFOS("ViewerMenu") << "toggle " << userdata.asString() << LL_ENDL;
+
if ( info_display != 0 )
{
LLPipeline::toggleRenderDebug( (void*)info_display );
@@ -997,6 +1003,8 @@ class LLAdvancedCheckInfoDisplay : public view_listener_t
U32 info_display = info_display_from_string( userdata.asString() );
bool new_value = false;
+ LL_INFOS("ViewerMenu") << "check " << userdata.asString() << LL_ENDL;
+
if ( info_display != 0 )
{
new_value = LLPipeline::toggleRenderDebugControl( (void*)info_display );
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index f0d53668d4..a9ca70fd26 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -3121,7 +3121,7 @@ protected:
{
// filter out non-interesting responeses
if ( !translation.empty()
- && (m_toLang != detected_language)
+ && (mToLang != detected_language)
&& (LLStringUtil::compareInsensitive(translation, m_origMesg) != 0) )
{
m_chat.mText += " (" + translation + ")";
@@ -3130,10 +3130,13 @@ protected:
LLNotificationsUI::LLNotificationManager::instance().onChat(m_chat, m_toastArgs);
}
- void handleFailure()
+ void handleFailure(int status, const std::string& err_msg)
{
- LLTranslate::TranslationReceiver::handleFailure();
- m_chat.mText += " (?)";
+ llwarns << "Translation failed for mesg " << m_origMesg << " toLang " << mToLang << " fromLang " << mFromLang << llendl;
+
+ std::string msg = LLTrans::getString("TranslationFailed", LLSD().with("[REASON]", err_msg));
+ LLStringUtil::replaceString(msg, "\n", " "); // we want one-line error messages
+ m_chat.mText += " (" + msg + ")";
LLNotificationsUI::LLNotificationManager::instance().onChat(m_chat, m_toastArgs);
}
@@ -3371,7 +3374,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
const std::string from_lang = ""; // leave empty to trigger autodetect
const std::string to_lang = LLTranslate::getTranslateLanguage();
- LLHTTPClient::ResponderPtr result = ChatTranslationReceiver::build(from_lang, to_lang, mesg, chat, args);
+ LLTranslate::TranslationReceiverPtr result = ChatTranslationReceiver::build(from_lang, to_lang, mesg, chat, args);
LLTranslate::translateMessage(result, from_lang, to_lang, mesg);
}
else
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 46e4fc3b02..46e4fc3b02 100644..100755
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 8576d81196..6fcbc401af 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -3174,7 +3174,7 @@ void LLViewerWindow::updateLayout()
//gMenuBarView->setItemVisible("BuildTools", gFloaterTools->getVisible());
}
- LLFloaterBuildOptions* build_options_floater = LLFloaterReg::getTypedInstance<LLFloaterBuildOptions>("build_options");
+ LLFloaterBuildOptions* build_options_floater = LLFloaterReg::findTypedInstance<LLFloaterBuildOptions>("build_options");
if (build_options_floater && build_options_floater->getVisible())
{
build_options_floater->updateGridMode();
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 380d63c77b..380d63c77b 100644..100755
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
diff --git a/indra/newview/llwind.cpp b/indra/newview/llwind.cpp
index 69d3090442..4c39fb5b74 100644
--- a/indra/newview/llwind.cpp
+++ b/indra/newview/llwind.cpp
@@ -46,16 +46,12 @@
#include "llworld.h"
-const F32 CLOUD_DIVERGENCE_COEF = 0.5f;
-
-
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
LLWind::LLWind()
-: mSize(16),
- mCloudDensityp(NULL)
+: mSize(16)
{
init();
}
@@ -65,8 +61,6 @@ LLWind::~LLWind()
{
delete [] mVelX;
delete [] mVelY;
- delete [] mCloudVelX;
- delete [] mCloudVelY;
}
@@ -77,31 +71,23 @@ LLWind::~LLWind()
void LLWind::init()
{
+ LL_DEBUGS("Wind") << "initializing wind size: "<< mSize << LL_ENDL;
+
// Initialize vector data
mVelX = new F32[mSize*mSize];
mVelY = new F32[mSize*mSize];
- mCloudVelX = new F32[mSize*mSize];
- mCloudVelY = new F32[mSize*mSize];
-
S32 i;
for (i = 0; i < mSize*mSize; i++)
{
mVelX[i] = 0.5f;
mVelY[i] = 0.5f;
- mCloudVelX[i] = 0.0f;
- mCloudVelY[i] = 0.0f;
}
}
void LLWind::decompress(LLBitPack &bitpack, LLGroupHeader *group_headerp)
{
- if (!mCloudDensityp)
- {
- return;
- }
-
LLPatchHeader patch_header;
S32 buffer[16*16];
@@ -122,22 +108,15 @@ void LLWind::decompress(LLBitPack &bitpack, LLGroupHeader *group_headerp)
decode_patch(bitpack, buffer);
decompress_patch(mVelY, buffer, &patch_header);
-
-
S32 i, j, k;
- // HACK -- mCloudVelXY is the same as mVelXY, except we add a divergence
- // that is proportional to the gradient of the cloud density
- // ==> this helps to clump clouds together
- // NOTE ASSUMPTION: cloud density has the same dimensions as the wind field
- // This needs to be fixed... causes discrepency at region boundaries
for (j=1; j<mSize-1; j++)
{
for (i=1; i<mSize-1; i++)
{
k = i + j * mSize;
- *(mCloudVelX + k) = *(mVelX + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + 1) - *(mCloudDensityp + k - 1));
- *(mCloudVelY + k) = *(mVelY + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + mSize) - *(mCloudDensityp + k - mSize));
+ *(mVelX + k) = *(mVelX + k);
+ *(mVelY + k) = *(mVelY + k);
}
}
@@ -145,29 +124,29 @@ void LLWind::decompress(LLBitPack &bitpack, LLGroupHeader *group_headerp)
for (j=1; j<mSize-1; j++)
{
k = i + j * mSize;
- *(mCloudVelX + k) = *(mVelX + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k) - *(mCloudDensityp + k - 2));
- *(mCloudVelY + k) = *(mVelY + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + mSize) - *(mCloudDensityp + k - mSize));
+ *(mVelX + k) = *(mVelX + k);
+ *(mVelY + k) = *(mVelY + k);
}
i = 0;
for (j=1; j<mSize-1; j++)
{
k = i + j * mSize;
- *(mCloudVelX + k) = *(mVelX + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + 2) - *(mCloudDensityp + k));
- *(mCloudVelY + k) = *(mVelY + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + mSize) - *(mCloudDensityp + k + mSize));
+ *(mVelX + k) = *(mVelX + k);
+ *(mVelY + k) = *(mVelY + k);
}
j = mSize - 1;
for (i=1; i<mSize-1; i++)
{
k = i + j * mSize;
- *(mCloudVelX + k) = *(mVelX + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + 1) - *(mCloudDensityp + k - 1));
- *(mCloudVelY + k) = *(mVelY + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k) - *(mCloudDensityp + k - 2*mSize));
+ *(mVelX + k) = *(mVelX + k);
+ *(mVelY + k) = *(mVelY + k);
}
j = 0;
for (i=1; i<mSize-1; i++)
{
k = i + j * mSize;
- *(mCloudVelX + k) = *(mVelX + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + 1) - *(mCloudDensityp + k -1));
- *(mCloudVelY + k) = *(mVelY + k) + CLOUD_DIVERGENCE_COEF * (*(mCloudDensityp + k + 2*mSize) - *(mCloudDensityp + k));
+ *(mVelX + k) = *(mVelX + k);
+ *(mVelY + k) = *(mVelY + k);
}
}
@@ -280,74 +259,6 @@ LLVector3 LLWind::getVelocity(const LLVector3 &pos_region)
return r_val * WIND_SCALE_HACK;
}
-
-LLVector3 LLWind::getCloudVelocity(const LLVector3 &pos_region)
-{
- llassert(mSize == 16);
- // Resolves value of wind at a location relative to SW corner of region
- //
- // Returns wind magnitude in X,Y components of vector3
- LLVector3 r_val;
- F32 dx,dy;
- S32 k;
-
- LLVector3 pos_clamped_region(pos_region);
-
- F32 region_width_meters = LLWorld::getInstance()->getRegionWidthInMeters();
-
- if (pos_clamped_region.mV[VX] < 0.f)
- {
- pos_clamped_region.mV[VX] = 0.f;
- }
- else if (pos_clamped_region.mV[VX] >= region_width_meters)
- {
- pos_clamped_region.mV[VX] = (F32) fmod(pos_clamped_region.mV[VX], region_width_meters);
- }
-
- if (pos_clamped_region.mV[VY] < 0.f)
- {
- pos_clamped_region.mV[VY] = 0.f;
- }
- else if (pos_clamped_region.mV[VY] >= region_width_meters)
- {
- pos_clamped_region.mV[VY] = (F32) fmod(pos_clamped_region.mV[VY], region_width_meters);
- }
-
-
- S32 i = llfloor(pos_clamped_region.mV[VX] * mSize / region_width_meters);
- S32 j = llfloor(pos_clamped_region.mV[VY] * mSize / region_width_meters);
- k = i + j*mSize;
- dx = ((pos_clamped_region.mV[VX] * mSize / region_width_meters) - (F32) i);
- dy = ((pos_clamped_region.mV[VY] * mSize / region_width_meters) - (F32) j);
-
- if ((i < mSize-1) && (j < mSize-1))
- {
- // Interior points, no edges
- r_val.mV[VX] = mCloudVelX[k]*(1.0f - dx)*(1.0f - dy) +
- mCloudVelX[k + 1]*dx*(1.0f - dy) +
- mCloudVelX[k + mSize]*dy*(1.0f - dx) +
- mCloudVelX[k + mSize + 1]*dx*dy;
- r_val.mV[VY] = mCloudVelY[k]*(1.0f - dx)*(1.0f - dy) +
- mCloudVelY[k + 1]*dx*(1.0f - dy) +
- mCloudVelY[k + mSize]*dy*(1.0f - dx) +
- mCloudVelY[k + mSize + 1]*dx*dy;
- }
- else
- {
- r_val.mV[VX] = mCloudVelX[k];
- r_val.mV[VY] = mCloudVelY[k];
- }
-
- r_val.mV[VZ] = 0.f;
- return r_val * WIND_SCALE_HACK;
-}
-
-
-void LLWind::setCloudDensityPointer(F32 *densityp)
-{
- mCloudDensityp = densityp;
-}
-
void LLWind::setOriginGlobal(const LLVector3d &origin_global)
{
mOriginGlobal = origin_global;
diff --git a/indra/newview/llwind.h b/indra/newview/llwind.h
index 925cb6d642..3b57f07124 100644
--- a/indra/newview/llwind.h
+++ b/indra/newview/llwind.h
@@ -27,7 +27,6 @@
#ifndef LL_LLWIND_H
#define LL_LLWIND_H
-//#include "vmath.h"
#include "llmath.h"
#include "v3math.h"
#include "v3dmath.h"
@@ -44,25 +43,21 @@ public:
~LLWind();
void renderVectors();
LLVector3 getVelocity(const LLVector3 &location); // "location" is region-local
- LLVector3 getCloudVelocity(const LLVector3 &location); // "location" is region-local
LLVector3 getVelocityNoisy(const LLVector3 &location, const F32 dim); // "location" is region-local
void decompress(LLBitPack &bitpack, LLGroupHeader *group_headerp);
LLVector3 getAverage();
- void setCloudDensityPointer(F32 *densityp);
void setOriginGlobal(const LLVector3d &origin_global);
private:
S32 mSize;
F32 * mVelX;
F32 * mVelY;
- F32 * mCloudVelX;
- F32 * mCloudVelY;
- F32 * mCloudDensityp;
LLVector3d mOriginGlobal;
void init();
+ LOG_CLASS(LLWind);
};
#endif
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index a50f66f282..93354e6579 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -4383,6 +4383,11 @@ void LLPipeline::renderDebug()
}
}
+ if (mRenderDebugMask & RENDER_DEBUG_WIND_VECTORS)
+ {
+ gAgent.getRegion()->mWind.renderVectors();
+ }
+
if (mRenderDebugMask & RENDER_DEBUG_COMPOSITION)
{
// Debug composition layers
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 27ee2745b5..0661de8cec 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -438,7 +438,7 @@ public:
RENDER_DEBUG_VERIFY = 0x0000002,
RENDER_DEBUG_BBOXES = 0x0000004,
RENDER_DEBUG_OCTREE = 0x0000008,
- RENDER_DEBUG_PICKING = 0x0000010,
+ RENDER_DEBUG_WIND_VECTORS = 0x0000010,
RENDER_DEBUG_OCCLUSION = 0x0000020,
RENDER_DEBUG_POINTS = 0x0000040,
RENDER_DEBUG_TEXTURE_PRIORITY = 0x0000080,
diff --git a/indra/newview/skins/default/xui/da/floater_about.xml b/indra/newview/skins/default/xui/da/floater_about.xml
index 0ccaab73ba..fc8bc33096 100644
--- a/indra/newview/skins/default/xui/da/floater_about.xml
+++ b/indra/newview/skins/default/xui/da/floater_about.xml
@@ -10,7 +10,7 @@
<floater.string name="AboutPosition">
Du er ved [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] i regionen [REGION] lokaliseret ved &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
[SERVER_VERSION]
-[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]]
+[SERVER_RELEASE_NOTES_URL]
</floater.string>
<floater.string name="AboutSystem">
CPU: [CPU]
diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml
index 519efe9ce8..145cc1e30b 100644
--- a/indra/newview/skins/default/xui/de/floater_about.xml
+++ b/indra/newview/skins/default/xui/de/floater_about.xml
@@ -10,7 +10,7 @@
<floater.string name="AboutPosition">
Sie befinden sich in [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] in [REGION] auf &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
[SERVER_VERSION]
-[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]]
+[SERVER_RELEASE_NOTES_URL]
</floater.string>
<floater.string name="AboutSystem">
CPU: [CPU]
@@ -37,6 +37,9 @@ Voice-Serverversion: [VOICE_VERSION]
<floater.string name="AboutTraffic">
Paketverlust: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
</floater.string>
+ <floater.string name="ErrorFetchingServerReleaseNotesURL">
+ Fehler beim Abrufen der URL für die Server-Versionshinweise.
+ </floater.string>
<tab_container name="about_tab">
<panel label="Info" name="support_panel">
<button label="In Zwischenablage kopieren" name="copy_btn"/>
diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml
index c65dc5f41d..3cf3a16247 100644
--- a/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_about_land.xml
@@ -214,19 +214,19 @@ werden.
Objektbonusfaktor in Region: [BONUS]
</text>
<text name="Simulator primitive usage:">
- Prim-Verwendung:
+ Regionskapazität:
</text>
<text name="objects_available">
[COUNT] von [MAX] ([AVAILABLE] verfügbar)
</text>
<text name="Primitives parcel supports:">
- Von Parzelle unterstützte Prims:
+ Parzellenlandkapazität:
</text>
<text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
- Prims auf Parzelle:
+ Parzellenlandauswirkung:
</text>
<text name="total_objects_text">
[COUNT]
diff --git a/indra/newview/skins/default/xui/de/floater_avatar.xml b/indra/newview/skins/default/xui/de/floater_avatar.xml
new file mode 100644
index 0000000000..1470c4bcd6
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_avatar.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Avatar" title="AVATAR-AUSWAHL"/>
diff --git a/indra/newview/skins/default/xui/de/floater_camera.xml b/indra/newview/skins/default/xui/de/floater_camera.xml
index d49c207f98..bbf1c8af60 100644
--- a/indra/newview/skins/default/xui/de/floater_camera.xml
+++ b/indra/newview/skins/default/xui/de/floater_camera.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="camera_floater">
+<floater name="camera_floater" title="ANSICHT">
<floater.string name="rotate_tooltip">
Kamera um Fokus drehen
</floater.string>
diff --git a/indra/newview/skins/default/xui/de/floater_chat_bar.xml b/indra/newview/skins/default/xui/de/floater_chat_bar.xml
new file mode 100644
index 0000000000..dc5a7cd681
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_chat_bar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="chat_bar" title="CHAT IN DER NÄHE">
+ <panel>
+ <line_editor label="Zum Chatten hier klicken." name="chat_box" tool_tip="Eingabetaste zum Sprechen, Strg+Eingabe zum Rufen"/>
+ <button name="show_nearby_chat" tool_tip="Chatprotokoll in der Nähe ein-/ausblenden"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_destinations.xml b/indra/newview/skins/default/xui/de/floater_destinations.xml
new file mode 100644
index 0000000000..57881488fd
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_destinations.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Destinations" title="ZIELE"/>
diff --git a/indra/newview/skins/default/xui/de/floater_fast_timers.xml b/indra/newview/skins/default/xui/de/floater_fast_timers.xml
new file mode 100644
index 0000000000..e61e542688
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_fast_timers.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="fast_timers">
+ <string name="pause">
+ Pause
+ </string>
+ <string name="run">
+ Rennen
+ </string>
+ <button label="Pause" name="pause_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_how_to.xml b/indra/newview/skins/default/xui/de/floater_how_to.xml
new file mode 100644
index 0000000000..caea221f83
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_how_to.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_how_to" title="INFOS"/>
diff --git a/indra/newview/skins/default/xui/de/floater_map.xml b/indra/newview/skins/default/xui/de/floater_map.xml
index f6d9db8d53..c4c42af66d 100644
--- a/indra/newview/skins/default/xui/de/floater_map.xml
+++ b/indra/newview/skins/default/xui/de/floater_map.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Map" title="">
+<floater name="Map" title="MINIKARTE">
<floater.string name="ToolTipMsg">
[REGION](Doppelklicken, um Karte zu öffnen; Umschalt-Taste gedrückt halten und ziehen, um zu schwenken)
</floater.string>
@@ -7,7 +7,7 @@
[REGION](Doppelklicken, um zu teleportieren; Umschalttaste gedrückt halten und ziehen, um zu schwenken)
</floater.string>
<floater.string name="mini_map_caption">
- MINI-KARTE
+ Minikarte
</floater.string>
<text label="N" name="floater_map_north" text="N">
N
diff --git a/indra/newview/skins/default/xui/de/floater_model_preview.xml b/indra/newview/skins/default/xui/de/floater_model_preview.xml
index 330893c326..7f6cd9944f 100644
--- a/indra/newview/skins/default/xui/de/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/de/floater_model_preview.xml
@@ -1,10 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Model Preview" title="Modell hochladen">
- <string name="status_idle">
- Inaktiv
- </string>
+<floater name="Model Preview" title="MODELL HOCHLADEN">
+ <string name="status_idle"/>
<string name="status_parse_error">
- DAE-Parsing-Fehler. Details siehe Protokoll.
+ Fehler: Fehler beim DAE-Parsen – Details siehe Protokoll.
</string>
<string name="status_reading_file">
Laden...
@@ -51,6 +49,9 @@
<string name="mesh_status_missing_lod">
Erforderliche Detailstufe fehlt.
</string>
+ <string name="mesh_status_invalid_material_list">
+ Detailstufenmaterial ist keine Teilmenge des Referenzmodells.
+ </string>
<string name="layer_all">
Alle
</string>
@@ -63,188 +64,211 @@
<string name="tbd">
noch nicht festgelegt
</string>
- <text name="name_label">
- Name:
- </text>
- <text name="lod_label">
- Vorschau:
- </text>
- <combo_box name="preview_lod_combo" tool_tip="Detailstufe zur Anzeige in Vorschaudarstellung">
- <combo_item name="high">
- Detailstufe: Hoch
- </combo_item>
- <combo_item name="medium">
- Detailstufe: Mittel
- </combo_item>
- <combo_item name="low">
- Detailstufe: Niedrig
- </combo_item>
- <combo_item name="lowest">
- Detailstufe: Niedrigste
- </combo_item>
- </combo_box>
- <text name="warning_title">
- ACHTUNG:
- </text>
- <text name="warning_message">
- Sie können dieses Modell nicht auf die Second Life-Server hochladen. [[VURL] Weitere Infos], wie Sie das Hochladen von Netzmodellen freischalten können.
- </text>
- <text name="weights_text">
- Herunterladen:
-Physik:
-Server:
-
-Prim-Äquivalenz:
- </text>
- <text name="weights">
- [ST]
-[PH]
-[SIM]
-
-[EQ]
- </text>
- <tab_container name="import_tab">
- <panel label="Detailstufe" name="lod_panel">
- <text name="lod_table_header">
- Detailstufe auswählen
- </text>
- <text name="high_label" value="Hoch"/>
- <text name="high_triangles" value="0"/>
- <text name="high_vertices" value="0"/>
- <text name="medium_label" value="Mittel"/>
- <text name="medium_triangles" value="0"/>
- <text name="medium_vertices" value="0"/>
- <text name="low_label" value="Niedrig"/>
- <text name="low_triangles" value="0"/>
- <text name="low_vertices" value="0"/>
- <text name="lowest_label" value="Niedrigste"/>
- <text name="lowest_triangles" value="0"/>
- <text name="lowest_vertices" value="0"/>
- <text name="lod_table_footer">
- Detailstufe: [DETAIL]
- </text>
- <radio_group name="lod_file_or_limit" value="lod_from_file">
- <radio_item label="Aus Datei laden" name="lod_from_file"/>
- <radio_item label="Automatisch generieren" name="lod_auto_generate"/>
- <radio_item label="Keine" name="lod_none"/>
- </radio_group>
- <button label="Durchsuchen..." name="lod_browse"/>
- <combo_box name="lod_mode">
- <combo_item name="triangle_limit">
- Dreiecklimit
- </combo_item>
- <combo_item name="error_threshold">
- Fehlerschwelle
- </combo_item>
- </combo_box>
- <text name="build_operator_text">
- Konstruktionsoperator:
+ <panel name="left_panel">
+ <panel name="model_name_representation_panel">
+ <text name="name_label">
+ Modellname:
</text>
- <text name="queue_mode_text">
- Warteschlangenmodus:
+ <text name="model_category_label">
+ Dieses Modell repräsentiert...
</text>
- <combo_box name="build_operator">
- <combo_item name="edge_collapse">
- Kantenkollaps
- </combo_item>
- <combo_item name="half_edge_collapse">
- Halbkantenkollaps
- </combo_item>
- </combo_box>
- <combo_box name="queue_mode">
- <combo_item name="greedy">
- Strikt
- </combo_item>
- <combo_item name="lazy">
- Locker
- </combo_item>
- <combo_item name="independent">
- Unabhängig
- </combo_item>
+ <combo_box name="model_category_combo">
+ <combo_item label="Eine auswählen..." name="Choose one"/>
+ <combo_item label="Avatarform" name="Avatar shape"/>
+ <combo_item label="Avatar-Anhang" name="Avatar attachment"/>
+ <combo_item label="Mobile Objekte (Fahrzeug, Tier)" name="Moving object (vehicle, animal)"/>
+ <combo_item label="Baukomponenten" name="Building Component"/>
+ <combo_item label="Groß, unbeweglich usw." name="Large, non moving etc"/>
+ <combo_item label="Kleiner, unbeweglich usw." name="Smaller, non-moving etc"/>
+ <combo_item label="Keine der oben genannten" name="Not really any of these"/>
</combo_box>
- <text name="border_mode_text">
- Grenzenmodus:
- </text>
- <text name="share_tolderance_text">
- Sharetoleranz:
- </text>
- <combo_box name="border_mode">
- <combo_item name="border_unlock">
- Freigeben
- </combo_item>
- <combo_item name="border_lock">
- Sperren
- </combo_item>
- </combo_box>
- <text name="crease_label">
- Knitterwinkel:
- </text>
- <spinner name="crease_angle" value="75"/>
</panel>
- <panel label="Physik" name="physics_panel">
- <panel name="physics geometry">
- <radio_group name="physics_load_radio" value="physics_load_from_file">
- <radio_item label="Datei:" name="physics_load_from_file"/>
- <radio_item label="Detailstufe verwenden:" name="physics_use_lod"/>
- </radio_group>
- <combo_box name="physics_lod_combo" tool_tip="Detailstufe für physische Form">
- <combo_item name="physics_lowest">
- Niedrigste
- </combo_item>
- <combo_item name="physics_low">
- Niedrig
- </combo_item>
- <combo_item name="physics_medium">
- Mittel
- </combo_item>
- <combo_item name="physics_high">
- Hoch
- </combo_item>
- </combo_box>
- <button label="Durchsuchen..." name="physics_browse"/>
+ <tab_container name="import_tab">
+ <panel label="Detailstufe" name="lod_panel" title="Detailstufe">
+ <text initial_value="Quelle" name="source" value="Quelle"/>
+ <text initial_value="Dreiecke" name="triangles" value="Dreiecke"/>
+ <text initial_value="Scheitelpunkte" name="vertices" value="Scheitelpunkte"/>
+ <text initial_value="Hoch" name="high_label" value="Hoch"/>
+ <button label="Durchsuchen..." name="lod_browse_high"/>
+ <text initial_value="0" name="high_triangles" value="0"/>
+ <text initial_value="0" name="high_vertices" value="0"/>
+ <text initial_value="Mittel" name="medium_label" value="Mittel"/>
+ <button label="Durchsuchen..." name="lod_browse_medium"/>
+ <text initial_value="0" name="medium_triangles" value="0"/>
+ <text initial_value="0" name="medium_vertices" value="0"/>
+ <text initial_value="Niedrig" name="low_label" value="Niedrig"/>
+ <button label="Durchsuchen..." name="lod_browse_low"/>
+ <text initial_value="0" name="low_triangles" value="0"/>
+ <text initial_value="0" name="low_vertices" value="0"/>
+ <text initial_value="Niedrigste" name="lowest_label" value="Niedrigste"/>
+ <button label="Durchsuchen..." name="lod_browse_lowest"/>
+ <text initial_value="0" name="lowest_triangles" value="0"/>
+ <text initial_value="0" name="lowest_vertices" value="0"/>
+ <check_box label="Normalen generieren" name="gen_normals"/>
+ <text initial_value="Knitterwinkel:" name="crease_label" value="Knitterwinkel:"/>
+ <spinner name="crease_angle" value="75"/>
</panel>
- <panel name="physics analysis">
- <slider label="Glätten:" name="Smooth"/>
- <check_box label="Löcher schließen (langsam)" name="Close Holes (Slow)"/>
- <button label="Analysieren" name="Decompose"/>
- <button label="Abbrechen" name="decompose_cancel"/>
+ <panel label="Physik" name="physics_panel">
+ <panel name="physics geometry">
+ <text name="first_step_name">
+ Schritt 1: Detailstufe
+ </text>
+ <combo_box name="physics_lod_combo" tool_tip="Detailstufe für Physikform">
+ <combo_item name="choose_one">
+ Eine auswählen...
+ </combo_item>
+ <combo_item name="physics_high">
+ Hoch
+ </combo_item>
+ <combo_item name="physics_medium">
+ Mittel
+ </combo_item>
+ <combo_item name="physics_low">
+ Niedrig
+ </combo_item>
+ <combo_item name="physics_lowest">
+ Niedrigste
+ </combo_item>
+ <combo_item name="load_from_file">
+ Aus Datei
+ </combo_item>
+ </combo_box>
+ <button label="Durchsuchen..." name="physics_browse"/>
+ </panel>
+ <panel name="physics analysis">
+ <text name="method_label">
+ Schritt 2: Analyse
+ </text>
+ <text name="analysis_method_label">
+ Methode:
+ </text>
+ <text name="quality_label">
+ Qualität:
+ </text>
+ <text name="smooth_method_label">
+ Glätten:
+ </text>
+ <check_box label="Löcher schließen" name="Close Holes (Slow)"/>
+ <button label="Analysieren" name="Decompose"/>
+ <button label="Abbrechen" name="decompose_cancel"/>
+ </panel>
+ <panel name="physics simplification">
+ <text name="second_step_label">
+ Schritt 3: Vereinfachen
+ </text>
+ <text name="simp_method_header">
+ Methode:
+ </text>
+ <text name="pass_method_header">
+ Durchläufe:
+ </text>
+ <text name="Detail Scale label">
+ Detailskalierung:
+ </text>
+ <text name="Retain%_label">
+ Beibehalten:
+ </text>
+ <combo_box name="Combine Quality" value="1"/>
+ <button label="Vereinfachen" name="Simplify"/>
+ <button label="Abbrechen" name="simplify_cancel"/>
+ </panel>
+ <panel name="physics info">
+ <text name="results_text">
+ Ergebnisse:
+ </text>
+ <text name="physics_triangles">
+ Dreiecke: [TRIANGLES],
+ </text>
+ <text name="physics_points">
+ Scheitelpunkte: [POINTS],
+ </text>
+ <text name="physics_hulls">
+ Hüllen: [HULLS]
+ </text>
+ </panel>
</panel>
- <panel name="physics simplification">
- <slider label="Durchläufe:" name="Combine Quality"/>
- <slider label="Detailskala:" name="Detail Scale"/>
- <slider label="Beibehalten:" name="Retain%"/>
- <button label="Vereinfachen" name="Simplify"/>
- <button label="Abbrechen" name="simplify_cancel"/>
- </panel>
- <panel name="physics info">
- <slider label="Vorschaudehnung:" name="physics_explode"/>
- <text name="physics_triangles">
- Dreiecke: [TRIANGLES]
+ <panel label="Hochladeoptionen" name="modifiers_panel">
+ <text name="scale_label">
+ Skalierung (1=keine Skalierung):
+ </text>
+ <spinner name="import_scale" value="1.0"/>
+ <text name="dimensions_label">
+ Dimensionen:
</text>
- <text name="physics_points">
- Vertices: [POINTS]
+ <text name="import_dimensions">
+ [X] X [Y] X [Z]
</text>
- <text name="physics_hulls">
- Hüllen: [HULLS]
+ <check_box label="Texturen einschließen" name="upload_textures"/>
+ <text name="include_label">
+ Nur für Avatarmodelle:
</text>
+ <check_box label="Skingewicht einschließen" name="upload_skin"/>
+ <check_box label="Gelenkpositionen einschließen" name="upload_joints"/>
+ <text name="pelvis_offset_label">
+ Z-Offset (Avatar anheben oder senken):
+ </text>
+ <spinner name="pelvis_offset" value="0.0"/>
</panel>
- </panel>
- <panel label="Modifizierer" name="modifiers_panel">
- <spinner name="import_scale" value="1,0"/>
- <text name="import_dimensions">
- [X] x [Y] x [Z] m
+ </tab_container>
+ <panel name="weights_and_warning_panel">
+ <button label="Gewichte und Gebühr berechnen" name="calculate_btn" tool_tip="Gewichte und Gebühr berechnen"/>
+ <button label="Abbrechen" name="cancel_btn"/>
+ <button label="Hochladen" name="ok_btn" tool_tip="Auf Simulator hochladen"/>
+ <button label="Einstellungen löschen und Formular zurücksetzen" name="reset_btn"/>
+ <text name="upload_fee">
+ Gebühr für Hochladen: [FEE] L$
+ </text>
+ <text name="prim_weight">
+ Auswirkung auf Land: [EQ]
+ </text>
+ <text name="download_weight">
+ Herunterladen: [ST]
+ </text>
+ <text name="physics_weight">
+ Physik: [PH]
+ </text>
+ <text name="server_weight">
+ Server: [SIM]
+ </text>
+ <text name="warning_title">
+ HINWEIS:
+ </text>
+ <text name="warning_message">
+ Sie haben keine Berechtigung zum Hochladen von Netzmodellen. [[VURL] Weitere Infos], wie Sie sich zertifizieren lassen können.
+ </text>
+ <text name="status">
+ [STATUS]
</text>
- <check_box label="Texturen" name="upload_textures"/>
- <check_box label="Skingewicht" name="upload_skin"/>
- <check_box label="Gelenkpositionen" name="upload_joints"/>
- <spinner name="pelvis_offset" value="0,0"/>
</panel>
- </tab_container>
- <text name="upload_fee">
- Gebühr für Hochladen: [FEE] L$
+ </panel>
+ <text name="lod_label">
+ Vorschau:
</text>
- <button label="Auf Standardwerte setzen" name="reset_btn" tool_tip="Auf Standardwerte setzen"/>
- <button label="Gewichte und Gebühr berechnen" name="calculate_btn" tool_tip="Gewichte und Gebühr berechnen"/>
- <button label="Hochladen" name="ok_btn" tool_tip="An Simulator hochladen"/>
- <button label="Abbrechen" name="cancel_btn"/>
+ <panel name="right_panel">
+ <combo_box name="preview_lod_combo" tool_tip="Detailstufe zur Anzeige in Vorschaudarstellung">
+ <combo_item name="high">
+ Hoch
+ </combo_item>
+ <combo_item name="medium">
+ Mittel
+ </combo_item>
+ <combo_item name="low">
+ Niedrig
+ </combo_item>
+ <combo_item name="lowest">
+ Niedrigste
+ </combo_item>
+ </combo_box>
+ <text name="label_display">
+ Anzeige...
+ </text>
+ <check_box label="Kanten" name="show_edges"/>
+ <check_box label="Physik" name="show_physics"/>
+ <check_box label="Texturen" name="show_textures"/>
+ <check_box label="Skingewichte" name="show_skin_weight"/>
+ <check_box label="Gelenke" name="show_joint_positions"/>
+ <text name="physics_explode_label">
+ Vorschaudehnung:
+ </text>
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_model_wizard.xml b/indra/newview/skins/default/xui/de/floater_model_wizard.xml
index 7103757b40..354a505901 100644
--- a/indra/newview/skins/default/xui/de/floater_model_wizard.xml
+++ b/indra/newview/skins/default/xui/de/floater_model_wizard.xml
@@ -6,26 +6,20 @@
<button label="2. Optimieren" name="optimize_btn"/>
<button label="1. Datei auswählen" name="choose_file_btn"/>
<panel name="choose_file_panel">
- <panel name="choose_file_header_panel">
- <text name="choose_file_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Modelldatei auswählen
</text>
</panel>
- <panel name="choose_file_content_panel">
+ <panel name="content">
<text name="advanced_users_text">
Fortgeschrittene Benutzer: Wenn Sie bereits mit Tools zur Erstellung von 3D-Inhalten vertraut sind, können Sie den erweiterten Uploader verwenden.
</text>
<button label="Auf Erweitert wechseln" name="switch_to_advanced"/>
- <text name="choose_model_file_label">
+ <text name="Cache location">
Hochzuladende Modelldatei auswählen
</text>
<button label="Durchsuchen..." label_selected="Durchsuchen..." name="browse"/>
- <text name="support_collada_text">
- Second Life unterstützt COLLADA-Dateien (.dae).
- </text>
- <text name="dimensions_label">
- Abmessungen (m):
- </text>
<text name="dimensions">
X Y Z
</text>
@@ -38,18 +32,15 @@
</panel>
</panel>
<panel name="optimize_panel">
- <panel name="optimize_header_panel">
- <text name="optimize_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Modell optimieren
</text>
</panel>
- <text name="optimize_hint">
+ <text name="description">
Wir haben das Modell auf Leistung optimiert. Sie können es bei Bedarf weiter anpassen.
</text>
- <panel name="optimize_content_panel">
- <text name="generating_lod_label">
- Detailstufe generieren
- </text>
+ <panel name="content">
<text name="high_detail_text">
Detailstufe generieren: Hoch
</text>
@@ -64,123 +55,64 @@
</text>
</panel>
<panel name="content2">
- <text name="optimize_performance_text">
- Leistung
- </text>
- <text name="optimize_faster_rendering_text">
- Schnellere Darstellung
-Weniger Details
-Niedrigeres Prim-Gewicht
- </text>
- <text name="optimize_accuracy_text">
- Genauigkeit
- </text>
- <text name="optimize_slower_rendering_text">
- Langsamere Darstellung
-Mehr Details
-Höheres Prim-Gewicht
- </text>
- <text name="accuracy_slider_mark1">
- &apos;
- </text>
- <text name="accuracy_slider_mark2">
- &apos;
- </text>
- <text name="accuracy_slider_mark3">
- &apos;
- </text>
<button label="Geometrie neu berechnen" name="recalculate_geometry_btn"/>
- <text name="geometry_preview_label">
+ <text name="lod_label">
Geometrievorschau
</text>
<combo_box name="preview_lod_combo" tool_tip="Detailstufe zur Anzeige in Vorschaudarstellung">
- <combo_item name="preview_lod_high">
+ <combo_item name="high">
Viel Details
</combo_item>
- <combo_item name="preview_lod_medium">
+ <combo_item name="medium">
Mittlere Details
</combo_item>
- <combo_item name="preview_lod_low">
+ <combo_item name="low">
Wenig Details
</combo_item>
- <combo_item name="preview_lod_lowest">
+ <combo_item name="lowest">
Wenigste Details
</combo_item>
</combo_box>
</panel>
</panel>
<panel name="physics_panel">
- <panel name="physics_header_panel">
- <text name="physics_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Physik anpassen
</text>
</panel>
- <text name="physics_hint">
+ <text name="description">
Wir erstellen eine Form für die Außenhülle des Modells. Passen Sie die Detailstufe der Form wie für den beabsichtigten Zweck erforderlich an.
</text>
- <panel name="physics_content_panel">
- <text name="physics_performance_text">
- Leistung
- </text>
- <text name="physics_faster_rendering_text">
- Schnellere Darstellung
-Weniger Details
-Niedrigeres Prim-Gewicht
- </text>
- <text name="physics_accuracy_text">
- Genauigkeit
- </text>
- <text name="physics_slower_dendering_text">
- Langsamere Darstellung
-Mehr Details
-Höheres Prim-Gewicht
- </text>
- <text name="physics_example_1">
- Beispiele:
-Mobile Objekte
-Fliegende Objekte
-Fahrzeuge
- </text>
- <text name="physics_example_2">
- Beispiele:
-Kleine statische Objekte
-Objekte mit weniger Details
-Einfache Möbel
- </text>
- <text name="physics_example_3">
- Beispiele:
-Statische Objekte
-Objekte mit viel Details
-Gebäude
- </text>
+ <panel name="content">
<button label="Physik neu berechnen" name="recalculate_physics_btn"/>
<button label="Neu berechnen..." name="recalculating_physics_btn"/>
- <text name="physics_preview_label">
+ <text name="lod_label">
Physikvorschau
</text>
<combo_box name="preview_lod_combo2" tool_tip="Detailstufe zur Anzeige in Vorschaudarstellung">
- <combo_item name="preview_lod2_high">
+ <combo_item name="high">
Viel Details
</combo_item>
- <combo_item name="preview_lod2_medium">
+ <combo_item name="medium">
Mittlere Details
</combo_item>
- <combo_item name="preview_lod2_low">
+ <combo_item name="low">
Wenig Details
</combo_item>
- <combo_item name="preview_lod2_lowest">
+ <combo_item name="lowest">
Wenigste Details
</combo_item>
</combo_box>
</panel>
</panel>
<panel name="review_panel">
- <panel name="review_header_panel">
- <text name="review_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Überprüfen
</text>
</panel>
- <panel name="review_content_panel">
+ <panel name="content">
<text name="review_prim_equiv">
Auswirkung auf Parzelle/Region: Prim-Äquivalenzwert [EQUIV]
</text>
@@ -193,8 +125,8 @@ Gebäude
</panel>
</panel>
<panel name="upload_panel">
- <panel name="upload_header_panel">
- <text name="upload_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Upload abgeschlossen
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/de/floater_moveview.xml b/indra/newview/skins/default/xui/de/floater_moveview.xml
index 4333392582..e8cc77c038 100644
--- a/indra/newview/skins/default/xui/de/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/de/floater_moveview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="move_floater">
+<floater name="move_floater" title="BEWEGEN">
<string name="walk_forward_tooltip">
Vorwärts gehen (Nach-oben-Pfeil oder W drücken)
</string>
@@ -58,14 +58,14 @@
Fliegen
</string>
<panel name="panel_actions">
- <button label="" label_selected="" name="move up btn" tool_tip="Nach oben fliegen, „E&quot; drücken"/>
<button label="" label_selected="" name="turn left btn" tool_tip="Nach links (Links-Pfeil oder A drücken)"/>
<joystick_slide name="move left btn" tool_tip="Nach links gehen (Umschalt + Links-Pfeil oder A drücken)"/>
- <button label="" label_selected="" name="move down btn" tool_tip="Nach unten fliegen, „C&quot; drücken"/>
<button label="" label_selected="" name="turn right btn" tool_tip="Nach rechts (Rechts-Pfeil oder D drücken)"/>
<joystick_slide name="move right btn" tool_tip="Nach rechts fliegen (Umschalt + Rechts-Pfeil oder D drücken)"/>
<joystick_turn name="forward btn" tool_tip="Vorwärts gehen (Nach-oben-Pfeil oder W drücken)"/>
<joystick_turn name="backward btn" tool_tip="Rückwärts gehen (Nach-Unten-Pfeil oder S drücken)"/>
+ <button label="" label_selected="" name="move up btn" tool_tip="Nach oben fliegen, „E&quot; drücken"/>
+ <button label="" label_selected="" name="move down btn" tool_tip="Nach unten fliegen, „C&quot; drücken"/>
</panel>
<panel name="panel_modes">
<button label="" name="mode_walk_btn" tool_tip="Gehen"/>
diff --git a/indra/newview/skins/default/xui/de/floater_my_appearance.xml b/indra/newview/skins/default/xui/de/floater_my_appearance.xml
new file mode 100644
index 0000000000..e26b2434cc
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_my_appearance.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_appearance" title="AUSSEHEN">
+ <panel label="Aussehen bearbeiten" name="main_panel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_my_inventory.xml b/indra/newview/skins/default/xui/de/floater_my_inventory.xml
new file mode 100644
index 0000000000..0cfa17562e
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_my_inventory.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_inventory" title="INVENTAR"/>
diff --git a/indra/newview/skins/default/xui/de/floater_object_weights.xml b/indra/newview/skins/default/xui/de/floater_object_weights.xml
new file mode 100644
index 0000000000..e6641d3d18
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_object_weights.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="object_weights" title="ERWEITERT">
+ <floater.string name="nothing_selected" value="--"/>
+ <text name="selected_text" value="AUSGEWÄHLT"/>
+ <text name="objects" value="--"/>
+ <text name="objects_label" value="Objekte"/>
+ <text name="prims" value="--"/>
+ <text name="prims_label" value="Primitive"/>
+ <text name="weights_of_selected_text" value="GEWICHT DER AUSGEWÄHLTEN"/>
+ <text name="download" value="--"/>
+ <text name="download_label" value="Herunterladen"/>
+ <text name="physics" value="--"/>
+ <text name="physics_label" value="Physik"/>
+ <text name="server" value="--"/>
+ <text name="server_label" value="Server"/>
+ <text name="display" value="--"/>
+ <text name="display_label" value="Anzeige"/>
+ <text name="land_impacts_text" value="AUSWIRKUNGEN AUF LAND"/>
+ <text name="selected" value="--"/>
+ <text name="selected_label" value="Ausgewählt"/>
+ <text name="rezzed_on_land" value="--"/>
+ <text name="rezzed_on_land_label" value="Auf Land gerezzt"/>
+ <text name="remaining_capacity" value="--"/>
+ <text name="remaining_capacity_label" value="Verbleibende Kapazität"/>
+ <text name="total_capacity" value="--"/>
+ <text name="total_capacity_label" value="Gesamtkapazität"/>
+ <text name="help_SLURL" value="[secondlife:///app/help/object_weights Was ist das?...]"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml
index 8c110e5516..7481e6d4b7 100644
--- a/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="Outfit speichern">
+<floater name="modal container" title="OUTFIT SPEICHERN">
<button label="Speichern" label_selected="Speichern" name="Save"/>
<button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
<text name="Save item as:">
diff --git a/indra/newview/skins/default/xui/de/floater_people.xml b/indra/newview/skins/default/xui/de/floater_people.xml
new file mode 100644
index 0000000000..fd1db148ac
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_people.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_people" title="LEUTE">
+ <panel_container name="main_panel">
+ <panel label="Gruppenprofil" name="panel_group_info_sidetray"/>
+ <panel label="Blockierte Einwohner und Objekte" name="panel_block_list_sidetray"/>
+ </panel_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_picks.xml b/indra/newview/skins/default/xui/de/floater_picks.xml
new file mode 100644
index 0000000000..2521920e83
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_picks.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_picks" title="Auswahlen"/>
diff --git a/indra/newview/skins/default/xui/de/floater_places.xml b/indra/newview/skins/default/xui/de/floater_places.xml
new file mode 100644
index 0000000000..80a1490afd
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_places.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_places" title="ORTE">
+ <panel label="Orte" name="main_panel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_sound_devices.xml b/indra/newview/skins/default/xui/de/floater_sound_devices.xml
index 7575ad9e2a..22ccb2c1a2 100644
--- a/indra/newview/skins/default/xui/de/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/de/floater_sound_devices.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_sound_devices" title="Audiogeräte">
+<floater name="floater_sound_devices" title="SOUNDGERÄTE">
<text name="voice_label">
Voice-Chat
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_stats.xml b/indra/newview/skins/default/xui/de/floater_stats.xml
index 1eb2dd4288..f6dc9fe15d 100644
--- a/indra/newview/skins/default/xui/de/floater_stats.xml
+++ b/indra/newview/skins/default/xui/de/floater_stats.xml
@@ -10,8 +10,8 @@
</stat_view>
<stat_view label="Erweitert" name="advanced">
<stat_view label="Darstellung" name="render">
- <stat_bar label="Gezeichnete KTris" name="ktrisframe"/>
- <stat_bar label="Gezeichnete KTris" name="ktrissec"/>
+ <stat_bar label="Pro Frame gezeichnete KTris" name="ktrisframe"/>
+ <stat_bar label="Pro Sek. gezeichnete KTris" name="ktrissec"/>
<stat_bar label="Objektanzahl" name="objs"/>
<stat_bar label="Neue Objekte" name="newobjs"/>
</stat_view>
@@ -32,7 +32,7 @@
<stat_bar label="Ebenen" name="layerskbitstat"/>
<stat_bar label="Tatsächlicher Eingang" name="actualinkbitstat"/>
<stat_bar label="Tatsächlicher Ausgang" name="actualoutkbitstat"/>
- <stat_bar label="VFS Ausstehende Ops" name="vfspendingoperations"/>
+ <stat_bar label="Ausstehende Vorgänge im VFS" name="vfspendingoperations"/>
</stat_view>
</stat_view>
<stat_view label="Simulator" name="sim">
@@ -64,6 +64,14 @@
<stat_bar label="Agent-Zeit" name="simagentmsec"/>
<stat_bar label="Bilder-Zeit" name="simimagesmsec"/>
<stat_bar label="Skript-Zeit" name="simscriptmsec"/>
+ <stat_bar label="Verbleib. Zeit" name="simsparemsec"/>
+ <stat_view label="Zeitdetails (ms)" name="timedetails">
+ <stat_bar label="Physik-Schritt" name="simsimphysicsstepmsec"/>
+ <stat_bar label="Phys. Formen aktualisieren" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="Physik – andere" name="simsimphysicsothermsec"/>
+ <stat_bar label="Schlafzeit" name="simsleepmsec"/>
+ <stat_bar label="Pump IO" name="simpumpiomsec"/>
+ </stat_view>
</stat_view>
</stat_view>
</container_view>
diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml
index 49b133e10f..cf1d03f32d 100644
--- a/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_tools.xml
@@ -25,10 +25,10 @@
Klicken und ziehen, um Land auszuwählen
</floater.string>
<floater.string name="status_selectcount">
- [OBJ_COUNT] Objekte ([PRIM_COUNT] Prims [PE_STRING]) ausgewählt
+ [OBJ_COUNT] Objekte ausgewählt, Auswirkung auf Land [LAND_IMPACT]
</floater.string>
- <floater.string name="status_selectprimequiv">
- , Prim-Äquivalenz [SEL_WEIGHT]
+ <floater.string name="status_remaining_capacity">
+ Verbleibende Kapazität [LAND_CAPACITY].
</floater.string>
<button label="" label_selected="" name="button focus" tool_tip="Fokus"/>
<button label="" label_selected="" name="button move" tool_tip="Verschieben"/>
@@ -105,8 +105,8 @@
<text name="selection_empty">
Nichts ausgewählt.
</text>
- <text name="selection_weight">
- Physikgewicht [PHYS_WEIGHT], Darstellungskosten [DISP_WEIGHT].
+ <text name="remaining_capacity">
+ [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights Weitere Infos]
</text>
<tab_container name="Object Info Tabs">
<panel label="Allgemein" name="General">
@@ -322,7 +322,6 @@
Naht
</text>
<combo_box name="sculpt type control">
- <combo_box.item label="(keiner)" name="None"/>
<combo_box.item label="Kugel" name="Sphere"/>
<combo_box.item label="Torus" name="Torus"/>
<combo_box.item label="Fläche" name="Plane"/>
diff --git a/indra/newview/skins/default/xui/de/floater_toybox.xml b/indra/newview/skins/default/xui/de/floater_toybox.xml
new file mode 100644
index 0000000000..23ec9c2e58
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_toybox.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Toybox" title="SYMBOLLEISTEN ANPASSEN">
+ <text name="toybox label 1">
+ Sie können Schaltflächen durch Ziehen zu Symbolleisten hinzufügen oder daraus entfernen.
+ </text>
+ <text name="toybox label 2">
+ Je nach Einstellung erscheinen Schaltflächen wie dargestellt oder nur als Symbol.
+ </text>
+ <button label="Standards wiederherstellen" label_selected="Standards wiederherstellen" name="btn_restore_defaults"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_voice_controls.xml b/indra/newview/skins/default/xui/de/floater_voice_controls.xml
index c97852b6e7..18d53841b8 100644
--- a/indra/newview/skins/default/xui/de/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/de/floater_voice_controls.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_voice_controls" title="Voice-Steuerung">
+<floater name="floater_voice_controls" title="SPRACHSTEUERUNGEN">
<string name="title_nearby">
- VOICE IN DER NÄHE
+ Stimme in der Nähe
</string>
<string name="title_group">
Gruppengespräch mit [GROUP]
diff --git a/indra/newview/skins/default/xui/de/menu_bottomtray.xml b/indra/newview/skins/default/xui/de/menu_bottomtray.xml
index da36be59d0..cb0082f944 100644
--- a/indra/newview/skins/default/xui/de/menu_bottomtray.xml
+++ b/indra/newview/skins/default/xui/de/menu_bottomtray.xml
@@ -8,7 +8,7 @@
<menu_item_check label="Schaltfläche „Bauen“" name="ShowBuildButton"/>
<menu_item_check label="Schaltfläche „Suchen“" name="ShowSearchButton"/>
<menu_item_check label="Schaltfläche „Karte“" name="ShowWorldMapButton"/>
- <menu_item_check label="Schaltfläche „Minikarte“" name="ShowMiniMapButton"/>
+ <menu_item_check label="Minikarten-Schaltfläche" name="ShowMiniMapButton"/>
<menu_item_call label="Ausschneiden" name="NearbyChatBar_Cut"/>
<menu_item_call label="Kopieren" name="NearbyChatBar_Copy"/>
<menu_item_call label="Einfügen" name="NearbyChatBar_Paste"/>
diff --git a/indra/newview/skins/default/xui/de/menu_hide_navbar.xml b/indra/newview/skins/default/xui/de/menu_hide_navbar.xml
index 9acf96dc6d..33d55e85bd 100644
--- a/indra/newview/skins/default/xui/de/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/de/menu_hide_navbar.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="hide_navbar_menu">
- <menu_item_check label="Navigationsleiste anzeigen" name="ShowNavbarNavigationPanel"/>
+ <menu_item_check label="Navigations- und Favoritenleiste anzeigen" name="ShowNavbarNavigationPanel"/>
<menu_item_check label="Favoritenleiste anzeigen" name="ShowNavbarFavoritesPanel"/>
<menu_item_check label="Mini-Standortleiste anzeigen" name="ShowMiniLocationPanel"/>
</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_login.xml b/indra/newview/skins/default/xui/de/menu_login.xml
index d932234cd1..c90205fbe4 100644
--- a/indra/newview/skins/default/xui/de/menu_login.xml
+++ b/indra/newview/skins/default/xui/de/menu_login.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu_bar name="Login Menu">
<menu label="Ich" name="File">
- <menu_item_call label="Einstellungen" name="Preferences..."/>
+ <menu_item_call label="Einstellungen..." name="Preferences..."/>
<menu_item_call label="[APP_NAME] schließen" name="Quit"/>
</menu>
<menu label="Hilfe" name="Help">
diff --git a/indra/newview/skins/default/xui/de/menu_toolbars.xml b/indra/newview/skins/default/xui/de/menu_toolbars.xml
new file mode 100644
index 0000000000..cfeae3deca
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_toolbars.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Toolbars Popup">
+ <menu_item_call label="Schaltflächen auswählen..." name="Chose Buttons"/>
+ <menu_item_check label="Symbole und Beschriftungen" name="icons_with_text"/>
+ <menu_item_check label="Nur Symbole" name="icons_only"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml
index 7c6918a4ee..e6135aa100 100644
--- a/indra/newview/skins/default/xui/de/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/de/menu_viewer.xml
@@ -1,29 +1,30 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu_bar name="Main Menu">
<menu label="Ich" name="Me">
- <menu_item_call label="Einstellungen" name="Preferences"/>
- <menu_item_call label="Meine Startseite" name="Manage My Account">
+ <menu_item_call label="Dashboard..." name="Manage My Account">
<menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=de"/>
</menu_item_call>
- <menu_item_call label="L$ kaufen" name="Buy and Sell L$"/>
- <menu_item_call label="Mein Profil" name="Profile"/>
- <menu_item_call label="Mein Aussehen" name="ChangeOutfit"/>
- <menu_item_check label="Mein Inventar" name="Inventory"/>
- <menu_item_check label="Mein Inventar" name="ShowSidetrayInventory"/>
- <menu_item_check label="Meine Gesten" name="Gestures"/>
- <menu_item_check label="Meine Stimme" name="ShowVoice"/>
+ <menu_item_call label="Profil..." name="Profile"/>
+ <menu_item_call label="Aussehen..." name="ChangeOutfit"/>
+ <menu_item_check label="Inventar..." name="Inventory"/>
+ <menu_item_check label="Gesten..." name="Gestures"/>
+ <menu_item_check label="Stimme..." name="ShowVoice"/>
<menu label="Bewegung" name="Movement">
<menu_item_call label="Hinsetzen" name="Sit Down Here"/>
<menu_item_check label="Fliegen" name="Fly"/>
<menu_item_check label="Immer rennen" name="Always Run"/>
<menu_item_call label="Animation meines Avatars stoppen" name="Stop Animating My Avatar"/>
</menu>
- <menu label="Mein Status" name="Status">
+ <menu label="Status" name="Status">
<menu_item_call label="Abwesend" name="Set Away"/>
<menu_item_call label="Beschäftigt" name="Set Busy"/>
</menu>
<menu_item_call label="Admin-Status anfordern" name="Request Admin Options"/>
<menu_item_call label="Admin-Status verlassen" name="Leave Admin Options"/>
+ <menu_item_call label="L$ kaufen" name="Buy and Sell L$"/>
+ <menu_item_call label="Einstellungen..." name="Preferences"/>
+ <menu_item_call label="Symbolleisten..." name="Toolbars"/>
+ <menu_item_call label="Alle Steuerelemente ausblenden" name="Hide UI"/>
<menu_item_call label="[APP_NAME] schließen" name="Quit"/>
</menu>
<menu label="Unterhalten" name="Communicate">
@@ -145,7 +146,6 @@
</menu>
<menu label="Hilfe" name="Help">
<menu_item_call label="[SECOND_LIFE]-Hilfe" name="Second Life Help"/>
- <menu_item_check label="Hinweise aktivieren" name="Enable Hints"/>
<menu_item_call label="Missbrauch melden" name="Report Abuse"/>
<menu_item_call label="Fehler melden" name="Report Bug"/>
<menu_item_call label="INFO ÜBER [APP_NAME]" name="About Second Life"/>
@@ -161,7 +161,7 @@
<menu label="Performance Tools" name="Performance Tools">
<menu_item_call label="Lag-Anzeige" name="Lag Meter"/>
<menu_item_check label="Statistikleiste" name="Statistics Bar"/>
- <menu_item_check label="Avatar-Darstellungskosten anzeigen" name="Avatar Rendering Cost"/>
+ <menu_item_check label="Zuggewicht für Avatare anzeigen" name="Avatar Rendering Cost"/>
</menu>
<menu label="Hervorhebung und Sichtbarkeit" name="Highlighting and Visibility">
<menu_item_check label="Pulsierender Strahl" name="Cheesy Beacon"/>
@@ -289,6 +289,7 @@
<menu_item_check label="Lichter" name="Lights"/>
<menu_item_check label="Gelenkpunkte" name="Collision Skeleton"/>
<menu_item_check label="Raycast" name="Raycast"/>
+ <menu_item_check label="Komplexität beim Rendern" name="rendercomplexity"/>
<menu_item_check label="Formen" name="Sculpt"/>
</menu>
<menu label="Rendering" name="Rendering">
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index 4c53c40d86..fc38608df5 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -1925,6 +1925,12 @@ Inventarobjekt(e) verschieben?
Wirklich beenden?
<usetemplate ignoretext="Bestätigen, bevor Sitzung beendet wird" name="okcancelignore" notext="Nicht beenden" yestext="Beenden"/>
</notification>
+ <notification name="ConfirmRestoreToybox">
+ Möchten Sie wirklich Ihre Standardschaltflächen und -symbolleisten wiederherstellen?
+
+Diese Aktion kann nicht rückgängig gemacht werden.
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
<notification name="DeleteItems">
[QUESTION]
<usetemplate ignoretext="Vor dem Löschen von Objekten bestätigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
@@ -3008,10 +3014,6 @@ Durch Ausblenden der Schaltfläche „Sprechen“ wird die Sprechfunktion deakti
<button name="cancel" text="Abbrechen"/>
</form>
</notification>
- <notification label="" name="ModeChange">
- Zum Wechsel des Modus müssen Sie das Programm beenden und neu starten.
- <usetemplate name="okcancelbuttons" notext="Nicht beenden" yestext="Beenden"/>
- </notification>
<notification label="" name="NoClassifieds">
Die Erstellung und Bearbeitung von Anzeigen ist nur im Modus „Erweitert“ möglich. Möchten Sie das Programm beenden und den Modus wechseln? Die Modusauswahl ist auf dem Anmeldebildschirm zu finden.
<usetemplate name="okcancelbuttons" notext="Nicht beenden" yestext="Beenden"/>
@@ -3056,6 +3058,10 @@ Durch Ausblenden der Schaltfläche „Sprechen“ wird die Sprechfunktion deakti
Die Suche ist nur im Modus „Erweitert“ möglich. Möchten Sie sich abmelden und den Modus wechseln?
<usetemplate name="okcancelbuttons" notext="Nicht beenden" yestext="Beenden"/>
</notification>
+ <notification label="" name="ConfirmHideUI">
+ Durch diese Aktion werden alle Menüelemente und Schaltflächen ausgeblendet. Um sie wieder anzuzeigen, klicken Sie erneut auf [SHORTCUT].
+ <usetemplate ignoretext="Vor Ausblenden der UI bestätigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ </notification>
<global name="UnsupportedGLRequirements">
Ihr Computer entspricht nicht den Hardwareanforderungen von [APP_NAME]. [APP_NAME] setzt eine OpenGL-Grafikkarte mit Multitextur-Unterstützung voraus. Falls Ihre Grafikkarte diese Funktion unterstützt, installieren Sie die neuesten Treiber sowie die aktuellen Service Packs und Patches für Ihr Betriebssystem.
diff --git a/indra/newview/skins/default/xui/de/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/de/panel_chiclet_bar.xml
new file mode 100644
index 0000000000..bcc6772bb9
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_chiclet_bar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="chiclet_bar">
+ <layout_stack name="toolbar_stack">
+ <layout_panel name="im_well_panel">
+ <chiclet_im_well name="im_well">
+ <button name="Unread IM messages" tool_tip="Unterhaltungen"/>
+ </chiclet_im_well>
+ </layout_panel>
+ <layout_panel name="notification_well_panel">
+ <chiclet_notification name="notification_well">
+ <button name="Unread" tool_tip="Benachrichtigungen"/>
+ </chiclet_notification>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_me.xml b/indra/newview/skins/default/xui/de/panel_me.xml
index 26b9812212..f49446fbbf 100644
--- a/indra/newview/skins/default/xui/de/panel_me.xml
+++ b/indra/newview/skins/default/xui/de/panel_me.xml
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Mein Profil" name="panel_me">
- <tab_container name="tabs">
- <panel label="MEIN PROFIL" name="panel_profile"/>
- <panel label="MEINE AUSWAHL" name="panel_picks"/>
- </tab_container>
+ <panel label="MEINE AUSWAHLEN" name="panel_picks"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_navigation_bar.xml b/indra/newview/skins/default/xui/de/panel_navigation_bar.xml
index ee1a543aac..53794b6619 100644
--- a/indra/newview/skins/default/xui/de/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_navigation_bar.xml
@@ -1,18 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="navigation_bar">
- <panel name="navigation_panel">
- <pull_button name="back_btn" tool_tip="Zurück zum vorherigen Standort teleportieren"/>
- <pull_button name="forward_btn" tool_tip="Um einen Standort weiter teleportieren"/>
- <button name="home_btn" tool_tip="Zu meinem Zuhause teleportieren"/>
- <location_input label="Standort" name="location_combo"/>
- <search_combo_box label="Suche" name="search_combo_box" tool_tip="Suche">
- <combo_editor label="[SECOND_LIFE] durchsuchen" name="search_combo_editor"/>
- </search_combo_box>
- </panel>
- <favorites_bar name="favorite" tool_tip="Ziehen Sie Landmarken hier hin, damit Sie schnell zu Ihren Lieblingsplätzen in Second Life gelangen können!">
- <label name="favorites_bar_label" tool_tip="Ziehen Sie Landmarken hier hin, damit Sie schnell zu Ihren Lieblingsplätzen in Second Life gelangen können!">
- Favoritenleiste
- </label>
- <chevron_button name="&gt;&gt;" tool_tip="Mehr meiner Favoriten anzeigen"/>
- </favorites_bar>
+ <layout_stack name="nvp_stack">
+ <layout_panel name="navigation_layout_panel">
+ <panel name="navigation_panel">
+ <pull_button name="back_btn" tool_tip="Zum vorherigen Standort zurückgehen"/>
+ <pull_button name="forward_btn" tool_tip="Einen Standort weiter gehen"/>
+ <button name="home_btn" tool_tip="Zu meinem Zuhause teleportieren"/>
+ <location_input label="Standort" name="location_combo"/>
+ </panel>
+ </layout_panel>
+ <layout_panel name="favorites_layout_panel">
+ <favorites_bar name="favorite" tool_tip="Landmarken hierher ziehen für schnellen Zugriff auf Lieblingsorte in Second Life.">
+ <label name="favorites_bar_label" tool_tip="Landmarken hierher ziehen für schnellen Zugriff auf Lieblingsorte in Second Life.">
+ Favoritenleiste
+ </label>
+ <more_button name="&gt;&gt;" tool_tip="Mehr meiner Favoriten anzeigen">
+ Mehr ▼
+ </more_button>
+ </favorites_bar>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_nearby_chat.xml b/indra/newview/skins/default/xui/de/panel_nearby_chat.xml
new file mode 100644
index 0000000000..c3ce42efa1
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_nearby_chat.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="nearby_chat">
+ <check_box label="Chat übersetzen (von Google bereitgestellt)" name="translate_chat_checkbox"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
index ed22e05a7c..5c8b8302c8 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -13,7 +13,10 @@
<combo_box.item label="Italiano (Italienisch) - Beta" name="Italian"/>
<combo_box.item label="Polski (Polnisch) - Beta" name="Polish"/>
<combo_box.item label="Português (Portugiesisch) - Beta" name="Portugese"/>
+ <combo_box.item label="Русский (Russisch) – Beta" name="Russian"/>
+ <combo_box.item label="Türkçe (Türkisch) – Beta" name="Turkish"/>
<combo_box.item label="日本語 (Japanisch) - Beta" name="(Japanese)"/>
+ <combo_box.item label="正體 (Traditionelles Chinesisch) – Beta" name="Traditional Chinese"/>
</combo_box>
<text name="language_textbox2">
(Erfordert Neustart)
@@ -48,7 +51,6 @@
<check_box label="Gruppentitel" name="show_all_title_checkbox1" tool_tip="Gruppentitel wie „Vorstand“ oder „Mitglied“"/>
<check_box label="Freunde hervorheben" name="show_friends" tool_tip="Avatarnamen Ihrer Freunde hervorheben"/>
<check_box label="Anzeigenamen anzeigen" name="display_names_check" tool_tip="Aktivieren Sie diese Option, um Anzeigenamen in Chat, IM, Avatarnamen usw. zu verwenden."/>
- <check_box label="Viewer-UI-Tipps aktivieren" name="viewer_hints_check"/>
<text name="inworld_typing_rg_label">
Drücken von Buchstabentasten:
</text>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_move.xml b/indra/newview/skins/default/xui/de/panel_preferences_move.xml
index fb749a16d7..3e248f0bf0 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_move.xml
@@ -7,18 +7,33 @@
</text>
<check_box label="Bauen/Bearbeiten" name="edit_camera_movement" tool_tip="Automatische Kamerapositionierung bei Wechsel in und aus dem Bearbeitungsmodus verwenden"/>
<check_box label="Aussehen" name="appearance_camera_movement" tool_tip="Automatische Kamerapositionierung im Bearbeitenmodus verwenden"/>
- <check_box initial_value="true" label="Seitenleiste" name="appearance_sidebar_positioning" tool_tip="Automatische Kameraposition für Seitenleiste verwenden"/>
+ <text name="keyboard_lbl">
+ Tastatur:
+ </text>
+ <check_box label="Mit Pfeiltasten bewegen" name="arrow_keys_move_avatar_check"/>
+ <check_box label="Drücken-drücken-halten, um zu rennen" name="tap_tap_hold_to_run"/>
+ <text name="mouse_lbl">
+ Maus:
+ </text>
<check_box label="Mich im Mouselook anzeigen" name="first_person_avatar_visible"/>
<text name=" Mouse Sensitivity">
Mausempfindlichkeit für Mouselook:
</text>
<check_box label="Umkehren" name="invert_mouse"/>
- <check_box label="Mit Pfeiltasten bewegen" name="arrow_keys_move_avatar_check"/>
- <check_box label="Drücken-drücken-halten, um zu rennen" name="tap_tap_hold_to_run"/>
- <check_box label="Doppelklicken:" name="double_click_chkbox"/>
- <radio_group name="double_click_action">
- <radio_item label="Teleportieren" name="radio_teleport"/>
- <radio_item label="Autopilot" name="radio_autopilot"/>
- </radio_group>
+ <text name="single_click_action_lbl">
+ Einmal auf Land klicken:
+ </text>
+ <combo_box name="single_click_action_combo">
+ <combo_box.item label="Keine Aktion" name="0"/>
+ <combo_box.item label="Zu angeklicktem Ort bewegen" name="1"/>
+ </combo_box>
+ <text name="double_click_action_lbl">
+ Auf Land doppelklicken:
+ </text>
+ <combo_box name="double_click_action_combo">
+ <combo_box.item label="Keine Aktion" name="0"/>
+ <combo_box.item label="Zu angeklicktem Ort bewegen" name="1"/>
+ <combo_box.item label="Zu angeklicktem Ort teleportieren" name="2"/>
+ </combo_box>
<button label="Andere Geräte" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_status_bar.xml b/indra/newview/skins/default/xui/de/panel_status_bar.xml
index e9de350ee7..d34fcf70bc 100644
--- a/indra/newview/skins/default/xui/de/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_status_bar.xml
@@ -18,11 +18,8 @@
<panel name="balance_bg">
<text name="balance" tool_tip="Klicken, um L$-Guthaben zu aktualisieren" value="20 L$"/>
<button label="L$ kaufen" name="buyL" tool_tip="Hier klicken, um mehr L$ zu kaufen"/>
+ <button label="Einkaufen" name="goShop" tool_tip="Second Life-Marktplatz öffnen"/>
</panel>
- <combo_box name="mode_combo" tool_tip="Wählen Sie den gewünschten Modus aus. Basismodus: Second Life schnell und einfach erkunden und chatten. Erweiterter Modus: Zugriff auf zusätzliche Funktionen.">
- <combo_box.item label="Basismodus" name="Basic"/>
- <combo_box.item label="Erweiterter Modus" name="Advanced"/>
- </combo_box>
<text name="TimeText" tool_tip="Aktuelle Zeit (Pazifik)">
24:00 H PST
</text>
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index 435f3494b0..2929556d43 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -128,7 +128,7 @@
Die Zertifikatsunterschrift des Gridservers konnte nicht bestätigt werden. Bitte kontaktieren Sie Ihren Grid-Administrator.
</string>
<string name="LoginFailedNoNetwork">
- Netzwerk Fehler: Eine Verbindung konnte nicht hergestellt werden. Bitte überprüfen Sie Ihre Netzwerkverbindung.
+ Netzwerkfehler: Verbindung konnte nicht hergestellt werden. Bitte überprüfen Sie Ihre Netzwerkverbindung.
</string>
<string name="LoginFailed">
Anmeldung fehlgeschlagen
@@ -1276,6 +1276,9 @@ Warten Sie kurz und versuchen Sie dann noch einmal, sich anzumelden.
<string name="Marketplace Error Internal Import">
Fehler: Bei diesem Artikel ist ein Problem aufgetreten. Versuchen Sie es später erneut.
</string>
+ <string name="Open landmarks">
+ Landmarken öffnen
+ </string>
<string name="no_transfer" value=" (kein Transferieren)"/>
<string name="no_modify" value=" (kein Bearbeiten)"/>
<string name="no_copy" value=" (kein Kopieren)"/>
@@ -4254,7 +4257,7 @@ Missbrauchsbericht
<string name="Female - Wow">
Weiblich - Wow
</string>
- <string name="/bow1">
+ <string name="/bow">
/verbeugen
</string>
<string name="/clap">
@@ -4767,4 +4770,172 @@ Setzen Sie den Editorpfad in Anführungszeichen
<string name="ParticleHiding">
Partikel werden ausgeblendet
</string>
+ <string name="Command_AboutLand_Label">
+ Landinformationen
+ </string>
+ <string name="Command_Appearance_Label">
+ Aussehen
+ </string>
+ <string name="Command_Avatar_Label">
+ Avatar
+ </string>
+ <string name="Command_Build_Label">
+ Bauen
+ </string>
+ <string name="Command_Chat_Label">
+ Chat
+ </string>
+ <string name="Command_Compass_Label">
+ Kompass
+ </string>
+ <string name="Command_Destinations_Label">
+ Ziele
+ </string>
+ <string name="Command_Gestures_Label">
+ Gesten
+ </string>
+ <string name="Command_HowTo_Label">
+ Infos
+ </string>
+ <string name="Command_Inventory_Label">
+ Inventar
+ </string>
+ <string name="Command_Map_Label">
+ Karte
+ </string>
+ <string name="Command_Marketplace_Label">
+ Marktplatz
+ </string>
+ <string name="Command_MiniMap_Label">
+ Minikarte
+ </string>
+ <string name="Command_Move_Label">
+ Bewegen
+ </string>
+ <string name="Command_People_Label">
+ Leute
+ </string>
+ <string name="Command_Picks_Label">
+ Auswahlen
+ </string>
+ <string name="Command_Places_Label">
+ Orte
+ </string>
+ <string name="Command_Preferences_Label">
+ Einstellungen
+ </string>
+ <string name="Command_Profile_Label">
+ Profil
+ </string>
+ <string name="Command_Search_Label">
+ Suchen
+ </string>
+ <string name="Command_Snapshot_Label">
+ Foto
+ </string>
+ <string name="Command_Speak_Label">
+ Sprechen
+ </string>
+ <string name="Command_View_Label">
+ Ansicht
+ </string>
+ <string name="Command_Voice_Label">
+ Stimme in der Nähe
+ </string>
+ <string name="Command_AboutLand_Tooltip">
+ Informationen zu dem von Ihnen besuchten Land
+ </string>
+ <string name="Command_Appearance_Tooltip">
+ Avatar ändern
+ </string>
+ <string name="Command_Avatar_Tooltip">
+ Kompletten Avatar auswählen
+ </string>
+ <string name="Command_Build_Tooltip">
+ Objekte bauen und Terrain umformen
+ </string>
+ <string name="Command_Chat_Tooltip">
+ Mit Leuten in der Nähe chatten
+ </string>
+ <string name="Command_Compass_Tooltip">
+ Kompass
+ </string>
+ <string name="Command_Destinations_Tooltip">
+ Ziele von Interesse
+ </string>
+ <string name="Command_Gestures_Tooltip">
+ Gesten für Ihren Avatar
+ </string>
+ <string name="Command_HowTo_Tooltip">
+ Wie führe ich gängige Aufgaben aus?
+ </string>
+ <string name="Command_Inventory_Tooltip">
+ Ihr Eigentum anzeigen und benutzen
+ </string>
+ <string name="Command_Map_Tooltip">
+ Weltkarte
+ </string>
+ <string name="Command_Marketplace_Tooltip">
+ Einkaufen gehen
+ </string>
+ <string name="Command_MiniMap_Tooltip">
+ Leute in der Nähe anzeigen
+ </string>
+ <string name="Command_Move_Tooltip">
+ Ihren Avatar bewegen
+ </string>
+ <string name="Command_People_Tooltip">
+ Freunde, Gruppen und Leute in der Nähe
+ </string>
+ <string name="Command_Picks_Tooltip">
+ Orte, die in Ihrem Profil als Favoriten angezeigt werden sollen
+ </string>
+ <string name="Command_Places_Tooltip">
+ Von Ihnen gespeicherte Orte
+ </string>
+ <string name="Command_Preferences_Tooltip">
+ Einstellungen
+ </string>
+ <string name="Command_Profile_Tooltip">
+ Ihr Profil bearbeiten oder anzeigen
+ </string>
+ <string name="Command_Search_Tooltip">
+ Orte, Veranstaltungen, Leute finden
+ </string>
+ <string name="Command_Snapshot_Tooltip">
+ Foto aufnehmen
+ </string>
+ <string name="Command_Speak_Tooltip">
+ Über Ihr Mikrofon mit Leuten in der Nähe sprechen
+ </string>
+ <string name="Command_View_Tooltip">
+ Kamerawinkel ändern
+ </string>
+ <string name="Command_Voice_Tooltip">
+ Leute in der Nähe mit Sprechfähigkeit
+ </string>
+ <string name="Retain%">
+ % zurückbehalten
+ </string>
+ <string name="Detail">
+ Details
+ </string>
+ <string name="Better Detail">
+ Bessere Details
+ </string>
+ <string name="Surface">
+ Oberfläche
+ </string>
+ <string name="Solid">
+ Fest
+ </string>
+ <string name="Wrap">
+ Wickeln
+ </string>
+ <string name="Preview">
+ Vorschau
+ </string>
+ <string name="Normal">
+ Normal
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/en/floater_avatar.xml b/indra/newview/skins/default/xui/en/floater_avatar.xml
index 3c7de6f334..2d973e7d90 100644
--- a/indra/newview/skins/default/xui/en/floater_avatar.xml
+++ b/indra/newview/skins/default/xui/en/floater_avatar.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
+ open_positioning="cascading"
+ ignore_ui_scale="false"
legacy_header_height="225"
can_minimize="true"
can_close="true"
@@ -12,6 +14,7 @@
single_instance="true"
help_topic="avatar"
save_rect="true"
+ save_visibility="true"
title="AVATAR PICKER"
width="635">
<web_browser
diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml
index afe8584a2d..e7f5207271 100644
--- a/indra/newview/skins/default/xui/en/floater_camera.xml
+++ b/indra/newview/skins/default/xui/en/floater_camera.xml
@@ -14,6 +14,7 @@
save_visibility="true"
single_instance="true"
title="VIEW"
+ chrome="true"
save_rect="true"
width="228">
<floater.string
@@ -166,14 +167,10 @@
<joystick_rotate
follows="top|left"
height="78"
- image_selected="Cam_Rotate_In"
- image_unselected="Cam_Rotate_Out"
layout="topleft"
left="7"
- mouse_opaque="false"
name="cam_rotate_stick"
quadrant="left"
- scale_image="false"
sound_flags="3"
visible="true"
tool_tip="Orbit camera around focus"
diff --git a/indra/newview/skins/default/xui/en/floater_destinations.xml b/indra/newview/skins/default/xui/en/floater_destinations.xml
index e63dc02a57..373114a1eb 100644
--- a/indra/newview/skins/default/xui/en/floater_destinations.xml
+++ b/indra/newview/skins/default/xui/en/floater_destinations.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
open_positioning="cascading"
+ ignore_ui_scale="false"
legacy_header_height="225"
can_minimize="true"
can_close="true"
@@ -14,6 +15,7 @@
single_instance="true"
help_topic="destinations"
save_rect="true"
+ save_visibility="true"
title="DESTINATIONS"
width="840">
<web_browser
diff --git a/indra/newview/skins/default/xui/en/floater_how_to.xml b/indra/newview/skins/default/xui/en/floater_how_to.xml
index 0369ecbeff..8c0077a8cc 100644
--- a/indra/newview/skins/default/xui/en/floater_how_to.xml
+++ b/indra/newview/skins/default/xui/en/floater_how_to.xml
@@ -10,6 +10,7 @@
top="10"
min_width="335"
name="floater_how_to"
+ help_topic="how_to"
single_instance="true"
save_rect="true"
title="HOW TO"
diff --git a/indra/newview/skins/default/xui/en/floater_hud.xml b/indra/newview/skins/default/xui/en/floater_hud.xml
index 99a6a95828..e2d860881a 100644
--- a/indra/newview/skins/default/xui/en/floater_hud.xml
+++ b/indra/newview/skins/default/xui/en/floater_hud.xml
@@ -8,6 +8,7 @@
help_topic="floater_hud"
save_rect="true"
save_visibility="true"
+ chrome="true"
title="TUTORIAL"
width="362">
<web_browser
diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml
index 58d67c8221..31972d4122 100644
--- a/indra/newview/skins/default/xui/en/floater_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_map.xml
@@ -3,6 +3,7 @@
open_positioning="cascading"
can_minimize="true"
can_resize="true"
+ chrome="true"
follows="top|right"
height="200"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml
index eebc5ddc72..eebc5ddc72 100644..100755
--- a/indra/newview/skins/default/xui/en/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml
diff --git a/indra/newview/skins/default/xui/en/floater_moveview.xml b/indra/newview/skins/default/xui/en/floater_moveview.xml
index b7370580af..e96039a3e1 100644
--- a/indra/newview/skins/default/xui/en/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/en/floater_moveview.xml
@@ -14,7 +14,8 @@
help_topic="move_floater"
save_rect="true"
save_visibility="true"
- save_dock_state="true"
+ single_instance="true"
+ chrome="true"
title="MOVE"
width="133">
<string
diff --git a/indra/newview/skins/default/xui/en/floater_my_appearance.xml b/indra/newview/skins/default/xui/en/floater_my_appearance.xml
index d9f3f1e13f..a40393aed8 100644
--- a/indra/newview/skins/default/xui/en/floater_my_appearance.xml
+++ b/indra/newview/skins/default/xui/en/floater_my_appearance.xml
@@ -10,6 +10,7 @@
help_topic="appearance"
save_rect="true"
single_instance="true"
+ reuse_instance="true"
title="APPEARANCE"
min_height="260"
min_width="333"
diff --git a/indra/newview/skins/default/xui/en/floater_my_inventory.xml b/indra/newview/skins/default/xui/en/floater_my_inventory.xml
index 44491c671f..cd0b59dc51 100644
--- a/indra/newview/skins/default/xui/en/floater_my_inventory.xml
+++ b/indra/newview/skins/default/xui/en/floater_my_inventory.xml
@@ -10,6 +10,7 @@
name="floater_my_inventory"
save_rect="true"
save_visibility="true"
+ reuse_instance="true"
title="INVENTORY"
width="333" >
<panel
diff --git a/indra/newview/skins/default/xui/en/floater_people.xml b/indra/newview/skins/default/xui/en/floater_people.xml
index 9c1d121433..32dda1b694 100644
--- a/indra/newview/skins/default/xui/en/floater_people.xml
+++ b/indra/newview/skins/default/xui/en/floater_people.xml
@@ -12,6 +12,7 @@
name="floater_people"
save_rect="true"
single_instance="true"
+ reuse_instance="true"
title="PEOPLE"
width="333">
<panel_container
diff --git a/indra/newview/skins/default/xui/en/floater_picks.xml b/indra/newview/skins/default/xui/en/floater_picks.xml
index 2d307028e4..7882116662 100644
--- a/indra/newview/skins/default/xui/en/floater_picks.xml
+++ b/indra/newview/skins/default/xui/en/floater_picks.xml
@@ -10,6 +10,7 @@
name="floater_picks"
save_rect="true"
save_visibility="true"
+ reuse_instance="true"
title="Picks"
width="333" >
<panel
diff --git a/indra/newview/skins/default/xui/en/floater_places.xml b/indra/newview/skins/default/xui/en/floater_places.xml
index b7cb86b468..6484b54360 100644
--- a/indra/newview/skins/default/xui/en/floater_places.xml
+++ b/indra/newview/skins/default/xui/en/floater_places.xml
@@ -9,6 +9,7 @@
name="floater_places"
help_topic="floater_places"
save_rect="true"
+ reuse_instance="true"
title="PLACES"
min_height="230"
min_width="333"
diff --git a/indra/newview/skins/default/xui/en/floater_sound_devices.xml b/indra/newview/skins/default/xui/en/floater_sound_devices.xml
index 3dbe4adf28..dec0e9b6c6 100644
--- a/indra/newview/skins/default/xui/en/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/en/floater_sound_devices.xml
@@ -6,6 +6,7 @@
can_minimize="true"
can_resize="false"
can_close="false"
+ chrome="true"
save_dock_state="true"
save_visibility="true"
save_rect="true"
diff --git a/indra/newview/skins/default/xui/en/floater_translation_settings.xml b/indra/newview/skins/default/xui/en/floater_translation_settings.xml
new file mode 100644
index 0000000000..c03f751265
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_translation_settings.xml
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ legacy_header_height="18"
+ height="310"
+ layout="topleft"
+ name="floater_translation_settings"
+ help_topic="environment_editor_floater"
+ save_rect="true"
+ title="CHAT TRANSLATION SETTINGS"
+ width="485">
+
+ <string name="bing_api_key_not_verified">Bing appID not verified. Please try again.</string>
+ <string name="google_api_key_not_verified">Google API key not verified. Please try again.</string>
+
+ <string name="bing_api_key_verified">Bing appID verified.</string>
+ <string name="google_api_key_verified">Google API key verified.</string>
+
+ <check_box
+ height="16"
+ label="Enable machine translation while chatting"
+ layout="topleft"
+ left="10"
+ name="translate_chat_checkbox"
+ top="30"
+ width="20" />
+ <text
+ height="20"
+ follows="left|top"
+ layout="topleft"
+ left="40"
+ name="translate_language_label"
+ top_pad="20"
+ width="130">
+ Translate chat into:
+ </text>
+ <combo_box
+ allow_text_entry="true"
+ follows="left|top"
+ height="23"
+ left_pad="10"
+ max_chars="135"
+ mouse_opaque="true"
+ name="translate_language_combo"
+ top_delta="-5"
+ width="190">
+ <combo_box.item
+ label="System Default"
+ name="System Default Language"
+ value="default" />
+ <combo_box.item
+ label="English"
+ name="English"
+ value="en" />
+ <!-- After "System Default" and "English", please keep the rest of these combo_box.items in alphabetical order by the first character in the string. -->
+ <combo_box.item
+ label="Dansk (Danish)"
+ name="Danish"
+ value="da" />
+ <combo_box.item
+ label="Deutsch (German)"
+ name="German"
+ value="de" />
+ <combo_box.item
+ label="Español (Spanish)"
+ name="Spanish"
+ value="es" />
+ <combo_box.item
+ label="Français (French)"
+ name="French"
+ value="fr" />
+ <combo_box.item
+ label="Italiano (Italian)"
+ name="Italian"
+ value="it" />
+ <combo_box.item
+ label="Magyar (Hungarian)"
+ name="Hungarian"
+ value="hu" />
+ <combo_box.item
+ label="Nederlands (Dutch)"
+ name="Dutch"
+ value="nl" />
+ <combo_box.item
+ label="Polski (Polish)"
+ name="Polish"
+ value="pl" />
+ <combo_box.item
+ label="Português (Portuguese)"
+ name="Portugese"
+ value="pt" />
+ <combo_box.item
+ label="Русский (Russian)"
+ name="Russian"
+ value="ru" />
+ <combo_box.item
+ label="Türkçe (Turkish)"
+ name="Turkish"
+ value="tr" />
+ <combo_box.item
+ label="Українська (Ukrainian)"
+ name="Ukrainian"
+ value="uk" />
+ <combo_box.item
+ label="中文 (正體) (Chinese)"
+ name="Chinese"
+ value="zh" />
+ <combo_box.item
+ label="日本語 (Japanese)"
+ name="Japanese"
+ value="ja" />
+ <combo_box.item
+ label="한국어 (Korean)"
+ name="Korean"
+ value="ko" />
+ </combo_box>
+
+ <text
+ follows="top|left|right"
+ height="15"
+ layout="topleft"
+ left="40"
+ name="tip"
+ top_pad="20"
+ width="330"
+ wrap="true">
+ Choose translation service:
+ </text>
+
+ <radio_group
+ follows="top|left"
+ height="80"
+ layout="topleft"
+ left_delta="10"
+ name="translation_service_rg"
+ top_pad="20"
+ width="320">
+ <radio_item
+ initial_value="bing"
+ label="Bing Translator"
+ layout="topleft"
+ name="bing" />
+ <radio_item
+ initial_value="google"
+ label="Google Translate"
+ layout="topleft"
+ name="google"
+ top_pad="55" />
+ </radio_group>
+
+ <text
+ type="string"
+ length="1"
+ follows="top|right"
+ height="20"
+ layout="topleft"
+ left="70"
+ name="bing_api_key_label"
+ top_pad="-55"
+ width="85">
+ Bing [http://www.bing.com/developers/createapp.aspx AppID]:
+ </text>
+ <line_editor
+ default_text="Enter Bing AppID and click &quot;Verify&quot;"
+ follows="top|left"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ max_length_chars="50"
+ top_delta="-4"
+ name="bing_api_key"
+ width="210" />
+ <button
+ follows="left|top"
+ height="23"
+ label="Verify"
+ layout="topleft"
+ left_pad="10"
+ name="verify_bing_api_key_btn"
+ top_delta="-2"
+ width="90" />
+
+ <text
+ follows="top|right"
+ height="20"
+ layout="topleft"
+ left="70"
+ length="1"
+ name="google_api_key_label"
+ top_pad="50"
+ type="string"
+ width="85">
+ Google [http://code.google.com/apis/language/translate/v2/getting_started.html#auth API key]:
+ </text>
+ <line_editor
+ default_text="Enter Google API key and click &quot;Verify&quot;"
+ follows="top|left"
+ height="20"
+ layout="topleft"
+ left_pad="10"
+ max_length_chars="50"
+ top_delta="-4"
+ name="google_api_key"
+ width="210" />
+ <button
+ follows="left|top"
+ height="23"
+ label="Verify"
+ layout="topleft"
+ left_pad="10"
+ name="verify_google_api_key_btn"
+ top_delta="-2"
+ width="90" />
+
+ <text
+ follows="top|right"
+ height="20"
+ layout="topleft"
+ left="185"
+ length="1"
+ name="google_links_text"
+ top_delta="-23"
+ type="string"
+ width="100">
+ [http://code.google.com/apis/language/translate/v2/pricing.html Pricing] | [https://code.google.com/apis/console Stats]
+ </text>
+
+ <button
+ follows="left|top"
+ height="23"
+ label="OK"
+ layout="topleft"
+ right="-120"
+ name="ok_btn"
+ top="-30"
+ width="100" />
+ <button
+ follows="left|top"
+ height="23"
+ label="Cancel"
+ layout="topleft"
+ left_pad="10"
+ name="cancel_btn"
+ width="100" />
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_voice_controls.xml b/indra/newview/skins/default/xui/en/floater_voice_controls.xml
index 3f5768bc0b..93a04050b6 100644
--- a/indra/newview/skins/default/xui/en/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/en/floater_voice_controls.xml
@@ -4,6 +4,7 @@
can_resize="true"
can_minimize="true"
can_close="true"
+ chrome="true"
height="205"
layout="topleft"
min_height="124"
@@ -18,19 +19,19 @@
width="282">
<string
name="title_nearby">
- Nearby voice
+ VOICE SETTINGS
</string>
<string
name="title_group">
- Group call with [GROUP]
+ GROUP CALL WITH [GROUP]
</string>
<string
name="title_adhoc">
- Conference call
+ CONFERENCE CALL
</string>
<string
name="title_peer_2_peer">
- Call with [NAME]
+ CALL WITH [NAME]
</string>
<string
name="no_one_near">
@@ -51,6 +52,7 @@
user_resize="false"
auto_resize="false"
layout="topleft"
+ min_height="20"
height="20"
name="my_panel">
<avatar_icon
@@ -132,6 +134,7 @@
height="132"
name="callers_panel"
user_resize="false"
+ auto_resize="true"
width="280">
<avatar_list
follows="all"
diff --git a/indra/newview/skins/default/xui/en/menu_bottomtray.xml b/indra/newview/skins/default/xui/en/menu_bottomtray.xml
deleted file mode 100644
index 1a102c21bb..0000000000
--- a/indra/newview/skins/default/xui/en/menu_bottomtray.xml
+++ /dev/null
@@ -1,163 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<menu
- height="201"
- layout="topleft"
- left="100"
- mouse_opaque="false"
- name="hide_camera_move_controls_menu"
- top="624"
- visible="false"
- width="128">
- <menu_item_check
- label="Speak Button"
- layout="topleft"
- name="EnableVoiceChat">
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="EnableVoiceChat" />
- <menu_item_check.on_check
- function="CheckControl"
- parameter="EnableVoiceChat" />
- </menu_item_check>
- <menu_item_check
- label="Gesture button"
- layout="topleft"
- name="ShowGestureButton">
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="ShowGestureButton" />
- <menu_item_check.on_check
- function="CheckControl"
- parameter="ShowGestureButton" />
- </menu_item_check>
- <menu_item_check
- label="Move button"
- layout="topleft"
- name="ShowMoveButton">
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="ShowMoveButton" />
- <menu_item_check.on_check
- function="CheckControl"
- parameter="ShowMoveButton" />
- </menu_item_check>
- <menu_item_check
- label="View button"
- layout="topleft"
- name="ShowCameraButton">
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="ShowCameraButton" />
- <menu_item_check.on_check
- function="CheckControl"
- parameter="ShowCameraButton" />
- </menu_item_check>
- <menu_item_check
- label="Snapshot button"
- layout="topleft"
- name="ShowSnapshotButton">
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="ShowSnapshotButton" />
- <menu_item_check.on_check
- function="CheckControl"
- parameter="ShowSnapshotButton" />
- </menu_item_check>
- <menu_item_check
- label="Build button"
- layout="topleft"
- name="ShowBuildButton">
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="ShowBuildButton" />
- <menu_item_check.on_check
- function="CheckControl"
- parameter="ShowBuildButton" />
- </menu_item_check>
- <menu_item_check
- label="Search button"
- layout="topleft"
- name="ShowSearchButton">
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="ShowSearchButton" />
- <menu_item_check.on_check
- function="CheckControl"
- parameter="ShowSearchButton" />
- </menu_item_check>
- <menu_item_check
- label="Map button"
- layout="topleft"
- name="ShowWorldMapButton">
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="ShowWorldMapButton" />
- <menu_item_check.on_check
- function="CheckControl"
- parameter="ShowWorldMapButton" />
- </menu_item_check>
- <menu_item_check
- label="Mini-map button"
- layout="topleft"
- name="ShowMiniMapButton">
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="ShowMiniMapButton" />
- <menu_item_check.on_check
- function="CheckControl"
- parameter="ShowMiniMapButton" />
- </menu_item_check>
- <menu_item_separator
- name="Separator" />
- <menu_item_call
- label="Cut"
- name="NearbyChatBar_Cut">
- <menu_item_call.on_click
- function="NearbyChatBar.Action"
- parameter="cut" />
- <menu_item_call.on_enable
- function="NearbyChatBar.EnableMenuItem"
- parameter="can_cut" />
- </menu_item_call>
- <menu_item_call
- label="Copy"
- name="NearbyChatBar_Copy">
- <menu_item_call.on_click
- function="NearbyChatBar.Action"
- parameter="copy" />
- <menu_item_call.on_enable
- function="NearbyChatBar.EnableMenuItem"
- parameter="can_copy" />
- </menu_item_call>
- <menu_item_call
- label="Paste"
- name="NearbyChatBar_Paste">
- <menu_item_call.on_click
- function="NearbyChatBar.Action"
- parameter="paste" />
- <menu_item_call.on_enable
- function="NearbyChatBar.EnableMenuItem"
- parameter="can_paste" />
- </menu_item_call>
- <menu_item_call
- label="Delete"
- name="NearbyChatBar_Delete">
- <menu_item_call.on_click
- function="NearbyChatBar.Action"
- parameter="delete" />
- <menu_item_call.on_enable
- function="NearbyChatBar.EnableMenuItem"
- parameter="can_delete" />
- </menu_item_call>
- <menu_item_call
- label="Select All"
- name="NearbyChatBar_Select_All">
- <menu_item_call.on_click
- function="NearbyChatBar.Action"
- parameter="select_all" />
- <menu_item_call.on_enable
- function="NearbyChatBar.EnableMenuItem"
- parameter="can_select_all" />
- </menu_item_call>
-
-</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 63e50b0b9f..01f9c23afd 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -2437,6 +2437,16 @@
parameter="raycast" />
</menu_item_check>
<menu_item_check
+ label="Wind Vectors"
+ name="Wind Vectors">
+ <menu_item_check.on_check
+ function="Advanced.CheckInfoDisplay"
+ parameter="wind vectors" />
+ <menu_item_check.on_click
+ function="Advanced.ToggleInfoDisplay"
+ parameter="wind vectors" />
+ </menu_item_check>
+ <menu_item_check
label="Render Complexity"
name="rendercomplexity">
<menu_item_check.on_check
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 6720d8131e..3ed8c30ca8 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -5432,21 +5432,23 @@ Your calling card was declined.
</notification>
<notification
- icon="notifytip.tga"
- name="TeleportToLandmark"
- type="notifytip">
-You can teleport to locations like &apos;[NAME]&apos; by opening the Places panel on the right side of your screen, and then select the Landmarks tab.
-Click on any landmark to select it, then click &apos;Teleport&apos; at the bottom of the panel.
-(You can also double-click on the landmark, or right-click it and choose &apos;Teleport&apos;.)
+ icon="notifytip.tga"
+ name="TeleportToLandmark"
+ type="notifytip">
+ To teleport to locations like &apos;[NAME]&apos;, click on the &quot;Places&quot; button,
+ then select the Landmarks tab in the window that opens. Click on any
+ landmark to select it, then click &apos;Teleport&apos; at the bottom of the window.
+ (You can also double-click on the landmark, or right-click it and
+ choose &apos;Teleport&apos;.)
</notification>
<notification
icon="notifytip.tga"
name="TeleportToPerson"
type="notifytip">
-You can contact Residents like &apos;[NAME]&apos; by opening the People panel on the right side of your screen.
-Select the Resident from the list, then click &apos;IM&apos; at the bottom of the panel.
-(You can also double-click on their name in the list, or right-click and choose &apos;IM&apos;).
+ To contact Residents like &apos;[NAME]&apos;, click on the &quot;People&quot; button , select a Resident from the window that opens, then click &apos;IM&apos; at the
+ bottom of the window.
+ (You can also double-click on their name in the list, or right-click and choose &apos;IM&apos;).
</notification>
<notification
diff --git a/indra/newview/skins/default/xui/en/panel_chat_item.xml b/indra/newview/skins/default/xui/en/panel_chat_item.xml
index 34c6e02684..6af1105400 100644
--- a/indra/newview/skins/default/xui/en/panel_chat_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_item.xml
@@ -2,7 +2,7 @@
<!-- All our XML is utf-8 encoded. -->
<panel
name="instant_message"
- width="315"
+ width="300"
height="180"
follows="all">
<avatar_icon
@@ -22,6 +22,7 @@
text_color="white"
word_wrap="true"
mouse_opaque="true"
+ valign="bottom"
name="msg_text">
</text_chat>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
index 355a76e05f..41d1036a4d 100644
--- a/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml
@@ -42,7 +42,7 @@
top="7"
width="189">
<button
- auto_resize="true"
+ auto_resize="false"
follows="right"
height="29"
image_hover_selected="SegmentedBtn_Left_Over"
@@ -57,9 +57,9 @@
tab_stop="false"
top="-28"
visible="false"
- width="7" />
+ width="12" />
<button
- auto_resize="true"
+ auto_resize="false"
follows="right"
height="29"
image_hover_selected="SegmentedBtn_Right_Over"
@@ -74,7 +74,7 @@
tab_stop="false"
top="-28"
visible="false"
- width="7" />
+ width="12" />
</chiclet_panel>
</layout_panel>
<layout_panel auto_resize="false"
@@ -110,7 +110,7 @@ image_pressed "Lit" - there are new messages
image_pressed_selected "Lit" + "Selected" - there are new messages and the Well is open
-->
<button
- auto_resize="true"
+ auto_resize="false"
follows="right"
halign="center"
height="23"
@@ -151,7 +151,7 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well
top="5"
width="35">
<button
- auto_resize="true"
+ auto_resize="false"
bottom_pad="3"
follows="right"
halign="center"
diff --git a/indra/newview/skins/default/xui/en/panel_notification.xml b/indra/newview/skins/default/xui/en/panel_notification.xml
index 59ead84127..f6f62ac54e 100644
--- a/indra/newview/skins/default/xui/en/panel_notification.xml
+++ b/indra/newview/skins/default/xui/en/panel_notification.xml
@@ -9,6 +9,8 @@
layout="topleft"
left="0"
name="notification_panel"
+ chrome="true"
+ show_title="false"
top="0"
height="140"
translate="false"
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 52be805260..caf7fc85f5 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
@@ -204,119 +204,16 @@
name="nearby_toasts_fadingtime"
top_pad="3"
width="325" />
-
- <check_box
- control_name="TranslateChat"
- enabled="true"
- height="16"
- layout="topleft"
- left="30"
- name="translate_chat_checkbox"
- top_pad="5"
- width="400" />
- <!-- *HACK
- After storm-1109 will be fixed: instead of using this text_box, word_wrap should be applied for "translate_chat_checkbox" check_box's label.-->
- <text
- follows="top|left"
- height="15"
- layout="topleft"
- left="50"
- name="translate_chb_label"
- top_delta="1"
- width="450"
- wrap="true">
- Use machine translation while chatting (powered by Google)
- </text>
- <text
- top_pad="20"
- name="translate_language_text"
- follows="left|top"
- layout="topleft"
- left_delta="20"
- height="20"
- width="110">
- Translate chat into:
- </text>
- <combo_box
- allow_text_entry="true"
- bottom_delta="3"
- control_name="TranslateLanguage"
- enabled="true"
- follows="left|top"
- height="23"
- left_delta="110"
- max_chars="135"
- mouse_opaque="true"
- name="translate_language_combobox"
- width="146">
- <combo_box.item
- label="System Default"
- name="System Default Language"
- value="default" />
- <combo_box.item
- label="English"
- name="English"
- value="en" />
- <!-- After "System Default" and "English", please keep the rest of these combo_box.items in alphabetical order by the first character in the string. -->
- <combo_box.item
- label="Dansk (Danish)"
- name="Danish"
- value="da" />
- <combo_box.item
- label="Deutsch (German)"
- name="German"
- value="de" />
- <combo_box.item
- label="Español (Spanish)"
- name="Spanish"
- value="es" />
- <combo_box.item
- label="Français (French)"
- name="French"
- value="fr" />
- <combo_box.item
- label="Italiano (Italian)"
- name="Italian"
- value="it" />
- <combo_box.item
- label="Magyar (Hungarian)"
- name="Hungarian"
- value="hu" />
- <combo_box.item
- label="Nederlands (Dutch)"
- name="Dutch"
- value="nl" />
- <combo_box.item
- label="Polski (Polish)"
- name="Polish"
- value="pl" />
- <combo_box.item
- label="Português (Portuguese)"
- name="Portugese"
- value="pt" />
- <combo_box.item
- label="Русский (Russian)"
- name="Russian"
- value="ru" />
- <combo_box.item
- label="Türkçe (Turkish)"
- name="Turkish"
- value="tr" />
- <combo_box.item
- label="Українська (Ukrainian)"
- name="Ukrainian"
- value="uk" />
- <combo_box.item
- label="中文 (正體) (Chinese)"
- name="Chinese"
- value="zh" />
- <combo_box.item
- label="日本語 (Japanese)"
- name="Japanese"
- value="ja" />
- <combo_box.item
- label="한국어 (Korean)"
- name="Korean"
- value="ko" />
- </combo_box>
+ <button
+ follows="left|top"
+ height="23"
+ label="Chat Translation Settings"
+ layout="topleft"
+ left="30"
+ name="ok_btn"
+ top="-40"
+ width="170">
+ <button.commit_callback
+ function="Pref.TranslationSettings" />
+ </button>
</panel> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index db7c07f2f8..24cec13c4c 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -2028,7 +2028,7 @@ Returns a string with the requested data about the region
<string name="PlacesNoMatchingItems">Didn't find what you're looking for? Try [secondlife:///app/search/places/[SEARCH_TERM] Search].</string>
<string name="FavoritesNoMatchingItems">Drag a landmark here to add it to your favorites.</string>
<string name="InventoryNoTexture">You do not have a copy of this texture in your inventory</string>
- <string name="InventoryInboxNoItems">Items purchased through the marketplace will be delivered here.</string>
+ <string name="InventoryInboxNoItems">When you purchase or otherwise receive an item, it will appear here so you can drag it to a folder in your inventory, or delete it if you do not wish to keep it.</string>
<string name="MarketplaceURL">http://marketplace.[DOMAIN_NAME]</string>
<string name="MarketplaceURL_CreateStore">http://marketplace.[DOMAIN_NAME]/create_store</string>
<string name="MarketplaceURL_LearnMore">http://marketplace.[DOMAIN_NAME]/learn_more</string>
@@ -2183,6 +2183,8 @@ Returns a string with the requested data about the region
<string name="Stomach">Stomach</string>
<string name="Left Pec">Left Pec</string>
<string name="Right Pec">Right Pec</string>
+ <string name="Neck">Neck</string>
+ <string name="Avatar Center">Avatar Center</string>
<string name="Invalid Attachment">Invalid Attachment Point</string>
<!-- Avatar age computation, see LLDateUtil::ageFromDate -->
@@ -3529,6 +3531,10 @@ Try enclosing path to the editor with double quotes.
<string name="ExternalEditorCommandParseError">Error parsing the external editor command.</string>
<string name="ExternalEditorFailedToRun">External editor failed to run.</string>
+ <!-- Machine translation of chat messahes -->
+ <string name="TranslationFailed">Translation failed: [REASON]</string>
+ <string name="TranslationResponseParseError">Error parsing translation response.</string>
+
<!-- Key names begin -->
<string name="Esc">Esc</string>
<string name="Space">Space</string>
@@ -3678,7 +3684,7 @@ Try enclosing path to the editor with double quotes.
<string name="Command_Snapshot_Label">Snapshot</string>
<string name="Command_Speak_Label">Speak</string>
<string name="Command_View_Label">View</string>
- <string name="Command_Voice_Label">Nearby voice</string>
+ <string name="Command_Voice_Label">Voice settings</string>
<string name="Command_AboutLand_Tooltip">Information about the land you're visiting</string>
<string name="Command_Appearance_Tooltip">Change your avatar</string>
@@ -3703,7 +3709,7 @@ Try enclosing path to the editor with double quotes.
<string name="Command_Snapshot_Tooltip">Take a picture</string>
<string name="Command_Speak_Tooltip">Speak with people nearby using your microphone</string>
<string name="Command_View_Tooltip">Changing camera angle</string>
- <string name="Command_Voice_Tooltip">People nearby with voice capability</string>
+ <string name="Command_Voice_Tooltip">Volume controls for calls and people near you in world</string>
<!-- Mesh UI terms -->
<string name="Retain%">Retain%</string>
diff --git a/indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml b/indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml
new file mode 100644
index 0000000000..a190da3909
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<joystick_rotate
+ image_selected="Cam_Rotate_In"
+ image_unselected="Cam_Rotate_Out"
+ scale_image="false"
+ mouse_opaque="false"
+ held_down_delay.seconds="0"/>
diff --git a/indra/newview/skins/default/xui/es/floater_about.xml b/indra/newview/skins/default/xui/es/floater_about.xml
index 93bb8444b4..b7c9cc27ac 100644
--- a/indra/newview/skins/default/xui/es/floater_about.xml
+++ b/indra/newview/skins/default/xui/es/floater_about.xml
@@ -10,7 +10,7 @@
<floater.string name="AboutPosition">
Estás en la posición [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1], de [REGION], alojada en &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
[SERVER_VERSION]
-[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]]
+[SERVER_RELEASE_NOTES_URL]
</floater.string>
<floater.string name="AboutSystem">
CPU: [CPU]
@@ -37,6 +37,9 @@ Versión del servidor de voz: [VOICE_VERSION]
<floater.string name="AboutTraffic">
Paquetes perdidos: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
</floater.string>
+ <floater.string name="ErrorFetchingServerReleaseNotesURL">
+ Error al obtener la URL de las notas de la versión del servidor.
+ </floater.string>
<tab_container name="about_tab">
<panel label="Información" name="support_panel">
<button label="Copiar al portapapeles" name="copy_btn" width="165"/>
diff --git a/indra/newview/skins/default/xui/es/floater_about_land.xml b/indra/newview/skins/default/xui/es/floater_about_land.xml
index 83749fc535..b6391e28a0 100644
--- a/indra/newview/skins/default/xui/es/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_about_land.xml
@@ -213,19 +213,19 @@ Vaya al menú Mundo &gt; Acerca del terreno o seleccione otra parcela para ver s
Plus de objetos en la región: [BONUS]
</text>
<text name="Simulator primitive usage:">
- Uso de primitivas:
+ Capacidad de la región:
</text>
<text name="objects_available">
[COUNT] de un máx. de [MAX] ([AVAILABLE] disponibles)
</text>
<text name="Primitives parcel supports:">
- Prims que admite la parcela:
+ Capacidad del terreno de la parcela:
</text>
<text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
- Prims en la parcela:
+ Impacto en el terreno de la parcela:
</text>
<text name="total_objects_text">
[COUNT]
diff --git a/indra/newview/skins/default/xui/es/floater_avatar.xml b/indra/newview/skins/default/xui/es/floater_avatar.xml
new file mode 100644
index 0000000000..7c87fbe01c
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_avatar.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Avatar" title="SELECTOR DE AVATAR"/>
diff --git a/indra/newview/skins/default/xui/es/floater_camera.xml b/indra/newview/skins/default/xui/es/floater_camera.xml
index 04f743b659..cdcb9a146b 100644
--- a/indra/newview/skins/default/xui/es/floater_camera.xml
+++ b/indra/newview/skins/default/xui/es/floater_camera.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="camera_floater" title="">
+<floater name="camera_floater" title="VER">
<floater.string name="rotate_tooltip">
Girar la cámara alrededor de lo enfocado
</floater.string>
diff --git a/indra/newview/skins/default/xui/es/floater_chat_bar.xml b/indra/newview/skins/default/xui/es/floater_chat_bar.xml
new file mode 100644
index 0000000000..5e5ef616b8
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_chat_bar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="chat_bar" title="CHAT">
+ <panel>
+ <line_editor label="Pulsa aquí para chatear." name="chat_box" tool_tip="Pulsa Enter para decirlo o Ctrl+Enter para gritarlo"/>
+ <button name="show_nearby_chat" tool_tip="Muestra o esconde el registro del chat"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_destinations.xml b/indra/newview/skins/default/xui/es/floater_destinations.xml
new file mode 100644
index 0000000000..df18698d2f
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_destinations.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Destinations" title="DESTINOS"/>
diff --git a/indra/newview/skins/default/xui/es/floater_fast_timers.xml b/indra/newview/skins/default/xui/es/floater_fast_timers.xml
new file mode 100644
index 0000000000..eeb39583ef
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_fast_timers.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="fast_timers">
+ <string name="pause">
+ Pausa
+ </string>
+ <string name="run">
+ Correr
+ </string>
+ <button label="Pausa" name="pause_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_how_to.xml b/indra/newview/skins/default/xui/es/floater_how_to.xml
new file mode 100644
index 0000000000..4a57dc3643
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_how_to.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_how_to" title="CÓMO"/>
diff --git a/indra/newview/skins/default/xui/es/floater_map.xml b/indra/newview/skins/default/xui/es/floater_map.xml
index 370b7f5053..69f638418e 100644
--- a/indra/newview/skins/default/xui/es/floater_map.xml
+++ b/indra/newview/skins/default/xui/es/floater_map.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Map" title="">
+<floater name="Map" title="MINIMAPA">
<floater.string name="ToolTipMsg">
[REGIÓN](Haz doble clic para abrir el mapa y pulsa la tecla Mayús y arrastra para obtener una vista panorámica)
</floater.string>
@@ -7,7 +7,7 @@
[REGION](Pulsa dos veces para teleportarte, pulsa mayús y arrastra para obtener una panorámica)
</floater.string>
<floater.string name="mini_map_caption">
- MINIMAPA
+ Minimapa
</floater.string>
<text label="N" name="floater_map_north" text="N">
N
diff --git a/indra/newview/skins/default/xui/es/floater_model_preview.xml b/indra/newview/skins/default/xui/es/floater_model_preview.xml
index 36f988b25f..3e77453612 100644
--- a/indra/newview/skins/default/xui/es/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/es/floater_model_preview.xml
@@ -1,10 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Model Preview" title="Cargar modelo">
- <string name="status_idle">
- Inactivo
- </string>
+<floater name="Model Preview" title="SUBIR MODELO">
+ <string name="status_idle"/>
<string name="status_parse_error">
- Problema de análisis de DAE - consulta los datos en el registro.
+ Error: Problema de análisis de DAE - consulta los datos en el registro.
</string>
<string name="status_reading_file">
Cargando...
@@ -51,6 +49,9 @@
<string name="mesh_status_missing_lod">
Falta un nivel de detalle requerido.
</string>
+ <string name="mesh_status_invalid_material_list">
+ Los materiales con niveles de detalle no son un subconjunto del modelo de referencia.
+ </string>
<string name="layer_all">
Todo
</string>
@@ -63,188 +64,211 @@
<string name="tbd">
TBD
</string>
- <text name="name_label">
- Nombre:
- </text>
- <text name="lod_label">
- Vista previa:
- </text>
- <combo_box name="preview_lod_combo" tool_tip="Nivel de detalle disponible en la vista previa">
- <combo_item name="high">
- Nivel de detalle: Alto
- </combo_item>
- <combo_item name="medium">
- Nivel de detalle: Media
- </combo_item>
- <combo_item name="low">
- Nivel de detalle: Bajo
- </combo_item>
- <combo_item name="lowest">
- Nivel de detalle: Mínimo
- </combo_item>
- </combo_box>
- <text name="warning_title">
- ATENCIÓN:
- </text>
- <text name="warning_message">
- No podrás terminar de subir este modelo a los servidores de Second Life. [[VURL] Averigua cómo] puedes obtener autorización para subir modelos de malla.
- </text>
- <text name="weights_text">
- Descargar:
-Física:
-Servidor:
-
-Equiv. en prims:
- </text>
- <text name="weights">
- [ST]
-[PH]
-[SIM]
-
-[EQ]
- </text>
- <tab_container name="import_tab">
- <panel label="Nivel de detalle" name="lod_panel">
- <text name="lod_table_header">
- Seleccionar nivel de detalle:
- </text>
- <text name="high_label" value="Alto"/>
- <text name="high_triangles" value="0"/>
- <text name="high_vertices" value="0"/>
- <text name="medium_label" value="Media"/>
- <text name="medium_triangles" value="0"/>
- <text name="medium_vertices" value="0"/>
- <text name="low_label" value="Bajo"/>
- <text name="low_triangles" value="0"/>
- <text name="low_vertices" value="0"/>
- <text name="lowest_label" value="Mínimo"/>
- <text name="lowest_triangles" value="0"/>
- <text name="lowest_vertices" value="0"/>
- <text name="lod_table_footer">
- Nivel de detalle: [DETALLE]
- </text>
- <radio_group name="lod_file_or_limit" value="lod_from_file">
- <radio_item label="Cargar desde el archivo" name="lod_from_file"/>
- <radio_item label="Generar automáticamente" name="lod_auto_generate"/>
- <radio_item label="Ninguno" name="lod_none"/>
- </radio_group>
- <button label="Examinar..." name="lod_browse"/>
- <combo_box name="lod_mode">
- <combo_item name="triangle_limit">
- Límite de triángulo
- </combo_item>
- <combo_item name="error_threshold">
- Margen de error
- </combo_item>
- </combo_box>
- <text name="build_operator_text">
- Crear operador:
+ <panel name="left_panel">
+ <panel name="model_name_representation_panel">
+ <text name="name_label">
+ Nombre del modelo:
</text>
- <text name="queue_mode_text">
- Modo de cola:
+ <text name="model_category_label">
+ Este modelo representa...
</text>
- <combo_box name="build_operator">
- <combo_item name="edge_collapse">
- Cerrar bordes
- </combo_item>
- <combo_item name="half_edge_collapse">
- Cerrar la mitad de los bordes
- </combo_item>
- </combo_box>
- <combo_box name="queue_mode">
- <combo_item name="greedy">
- Egoísta
- </combo_item>
- <combo_item name="lazy">
- Vago
- </combo_item>
- <combo_item name="independent">
- Independiente
- </combo_item>
+ <combo_box name="model_category_combo">
+ <combo_item label="Elegir uno..." name="Choose one"/>
+ <combo_item label="Forma del avatar" name="Avatar shape"/>
+ <combo_item label="Anexo del avatar" name="Avatar attachment"/>
+ <combo_item label="Objeto en movimiento (vehículo, animal)" name="Moving object (vehicle, animal)"/>
+ <combo_item label="Componente de construcción" name="Building Component"/>
+ <combo_item label="Grande, sin movimiento, etc." name="Large, non moving etc"/>
+ <combo_item label="Más pequeño, sin movimiento, etc." name="Smaller, non-moving etc"/>
+ <combo_item label="No es exactamente ninguno de estos" name="Not really any of these"/>
</combo_box>
- <text name="border_mode_text">
- Modo de borde:
- </text>
- <text name="share_tolderance_text">
- Tolerancia de uso compartido:
- </text>
- <combo_box name="border_mode">
- <combo_item name="border_unlock">
- Desbloquear
- </combo_item>
- <combo_item name="border_lock">
- Lock
- </combo_item>
- </combo_box>
- <text name="crease_label">
- Ángulo de marca:
- </text>
- <spinner name="crease_angle" value="75"/>
</panel>
- <panel label="Física" name="physics_panel">
- <panel name="physics geometry">
- <radio_group name="physics_load_radio" value="physics_load_from_file">
- <radio_item label="Archivo:" name="physics_load_from_file"/>
- <radio_item label="Utilizar nivel de detalle:" name="physics_use_lod"/>
- </radio_group>
- <combo_box name="physics_lod_combo" tool_tip="Nivel de detalle para forma física">
- <combo_item name="physics_lowest">
- Mínimo
- </combo_item>
- <combo_item name="physics_low">
- Bajo
- </combo_item>
- <combo_item name="physics_medium">
- Media
- </combo_item>
- <combo_item name="physics_high">
- Alto
- </combo_item>
- </combo_box>
- <button label="Examinar..." name="physics_browse"/>
+ <tab_container name="import_tab">
+ <panel label="Nivel de detalle" name="lod_panel" title="Nivel de detalle">
+ <text initial_value="Origen" name="source" value="Origen"/>
+ <text initial_value="Triángulos" name="triangles" value="Triángulos"/>
+ <text initial_value="Vértices" name="vertices" value="Vértices"/>
+ <text initial_value="Alto" name="high_label" value="Alto"/>
+ <button label="Buscar..." name="lod_browse_high"/>
+ <text initial_value="0" name="high_triangles" value="0"/>
+ <text initial_value="0" name="high_vertices" value="0"/>
+ <text initial_value="Medio" name="medium_label" value="Medio"/>
+ <button label="Buscar..." name="lod_browse_medium"/>
+ <text initial_value="0" name="medium_triangles" value="0"/>
+ <text initial_value="0" name="medium_vertices" value="0"/>
+ <text initial_value="Bajo" name="low_label" value="Bajo"/>
+ <button label="Buscar..." name="lod_browse_low"/>
+ <text initial_value="0" name="low_triangles" value="0"/>
+ <text initial_value="0" name="low_vertices" value="0"/>
+ <text initial_value="Mínimo" name="lowest_label" value="Mínimo"/>
+ <button label="Buscar..." name="lod_browse_lowest"/>
+ <text initial_value="0" name="lowest_triangles" value="0"/>
+ <text initial_value="0" name="lowest_vertices" value="0"/>
+ <check_box label="Generar normales" name="gen_normals"/>
+ <text initial_value="Ángulo de pliegue:" name="crease_label" value="Ángulo de pliegue:"/>
+ <spinner name="crease_angle" value="75"/>
</panel>
- <panel name="physics analysis">
- <slider label="Leve:" name="Smooth"/>
- <check_box label="Cerrar agujeros (lento)" name="Close Holes (Slow)"/>
- <button label="Analizar" name="Decompose"/>
- <button label="Cancelar" name="decompose_cancel"/>
+ <panel label="Física" name="physics_panel">
+ <panel name="physics geometry">
+ <text name="first_step_name">
+ Paso 1: Nivel de detalle
+ </text>
+ <combo_box name="physics_lod_combo" tool_tip="Niveles de detalle para utilizar con la forma física">
+ <combo_item name="choose_one">
+ Elegir uno...
+ </combo_item>
+ <combo_item name="physics_high">
+ Alto
+ </combo_item>
+ <combo_item name="physics_medium">
+ Medio
+ </combo_item>
+ <combo_item name="physics_low">
+ Bajo
+ </combo_item>
+ <combo_item name="physics_lowest">
+ Mínimo
+ </combo_item>
+ <combo_item name="load_from_file">
+ De archivo
+ </combo_item>
+ </combo_box>
+ <button label="Buscar..." name="physics_browse"/>
+ </panel>
+ <panel name="physics analysis">
+ <text name="method_label">
+ Paso 2: Analizar
+ </text>
+ <text name="analysis_method_label">
+ Método:
+ </text>
+ <text name="quality_label">
+ Calidad:
+ </text>
+ <text name="smooth_method_label">
+ Leve:
+ </text>
+ <check_box label="Cerrar agujeros" name="Close Holes (Slow)"/>
+ <button label="Analizar" name="Decompose"/>
+ <button label="Cancelar" name="decompose_cancel"/>
+ </panel>
+ <panel name="physics simplification">
+ <text name="second_step_label">
+ Paso 3: Simplificar
+ </text>
+ <text name="simp_method_header">
+ Método:
+ </text>
+ <text name="pass_method_header">
+ Pases:
+ </text>
+ <text name="Detail Scale label">
+ Escala de detalle:
+ </text>
+ <text name="Retain%_label">
+ Retención:
+ </text>
+ <combo_box name="Combine Quality" value="1"/>
+ <button label="Simplificar" name="Simplify"/>
+ <button label="Cancelar" name="simplify_cancel"/>
+ </panel>
+ <panel name="physics info">
+ <text name="results_text">
+ Resultados:
+ </text>
+ <text name="physics_triangles">
+ Triángulos: [TRIANGLES],
+ </text>
+ <text name="physics_points">
+ Vértices: [POINTS],
+ </text>
+ <text name="physics_hulls">
+ Apariencias: [HULLS]
+ </text>
+ </panel>
</panel>
- <panel name="physics simplification">
- <slider label="Pases:" name="Combine Quality"/>
- <slider label="Escala de detalle:" name="Detail Scale"/>
- <slider label="Retener:" name="Retain%"/>
- <button label="Simplificar" name="Simplify"/>
- <button label="Cancelar" name="simplify_cancel"/>
- </panel>
- <panel name="physics info">
- <slider label="Ampliación de vista previa:" name="physics_explode"/>
- <text name="physics_triangles">
- Triángulos: [TRIÁNGULOS]
+ <panel label="Opciones de subida" name="modifiers_panel">
+ <text name="scale_label">
+ Escala (1=sin ajuste de escala):
+ </text>
+ <spinner name="import_scale" value="1.0"/>
+ <text name="dimensions_label">
+ Dimensiones:
</text>
- <text name="physics_points">
- Intersecciones: [PUNTOS]
+ <text name="import_dimensions">
+ [X] X [Y] X [Z]
</text>
- <text name="physics_hulls">
- Aspecto exterior: [ASPECTO EXTERIOR]
+ <check_box label="Incluir texturas" name="upload_textures"/>
+ <text name="include_label">
+ Solo para modelos de avatar:
</text>
+ <check_box label="Incluir el peso de la piel" name="upload_skin"/>
+ <check_box label="Incluir posturas de las articulaciones" name="upload_joints"/>
+ <text name="pelvis_offset_label">
+ Desplazamiento Z (subir o bajar el avatar):
+ </text>
+ <spinner name="pelvis_offset" value="0.0"/>
</panel>
- </panel>
- <panel label="Modificadores" name="modifiers_panel">
- <spinner name="import_scale" value="1.0"/>
- <text name="import_dimensions">
- [X] x [Y] x [Z] m
+ </tab_container>
+ <panel name="weights_and_warning_panel">
+ <button label="Calcular pesos y precio" name="calculate_btn" tool_tip="Calcular pesos y precio"/>
+ <button label="Cancelar" name="cancel_btn"/>
+ <button label="subir" name="ok_btn" tool_tip="Subir al simulador"/>
+ <button label="Limpiar la configuración y reiniciar el formulario" name="reset_btn"/>
+ <text name="upload_fee">
+ Precio de subida: L$ [FEE]
+ </text>
+ <text name="prim_weight">
+ Impacto en el terreno: [EQ]
+ </text>
+ <text name="download_weight">
+ Descargar: [ST]
+ </text>
+ <text name="physics_weight">
+ Física: [PH]
+ </text>
+ <text name="server_weight">
+ Servidor: [SIM]
+ </text>
+ <text name="warning_title">
+ NOTA:
+ </text>
+ <text name="warning_message">
+ No tienes derechos para subir modelos de malla. [[VURL] Averigua cómo] puedes obtener la autorización.
+ </text>
+ <text name="status">
+ [STATUS]
</text>
- <check_box label="Texturas" name="upload_textures"/>
- <check_box label="Peso de la piel" name="upload_skin"/>
- <check_box label="Posturas de las articulaciones" name="upload_joints"/>
- <spinner name="pelvis_offset" value="0.0"/>
</panel>
- </tab_container>
- <text name="upload_fee">
- Precio de subida: L$ [FEE]
+ </panel>
+ <text name="lod_label">
+ Vista previa:
</text>
- <button label="Establecer en valores predeterminados" name="reset_btn" tool_tip="Establecer en valores predeterminados"/>
- <button label="Calcular pesos y precio" name="calculate_btn" tool_tip="Calcular pesos y precio"/>
- <button label="Subir" name="ok_btn" tool_tip="Cargar al simulador"/>
- <button label="Cancelar" name="cancel_btn"/>
+ <panel name="right_panel">
+ <combo_box name="preview_lod_combo" tool_tip="LOD para ver en renderizado de prueba">
+ <combo_item name="high">
+ Alto
+ </combo_item>
+ <combo_item name="medium">
+ Media
+ </combo_item>
+ <combo_item name="low">
+ Bajo
+ </combo_item>
+ <combo_item name="lowest">
+ Mínimo
+ </combo_item>
+ </combo_box>
+ <text name="label_display">
+ Mostrar...
+ </text>
+ <check_box label="Bordes" name="show_edges"/>
+ <check_box label="Física" name="show_physics"/>
+ <check_box label="Texturas" name="show_textures"/>
+ <check_box label="Pesos de la piel" name="show_skin_weight"/>
+ <check_box label="Articulaciones" name="show_joint_positions"/>
+ <text name="physics_explode_label">
+ Ampliación de vista previa:
+ </text>
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_model_wizard.xml b/indra/newview/skins/default/xui/es/floater_model_wizard.xml
index 86de557ed9..c4eb5e955a 100644
--- a/indra/newview/skins/default/xui/es/floater_model_wizard.xml
+++ b/indra/newview/skins/default/xui/es/floater_model_wizard.xml
@@ -6,26 +6,20 @@
<button label="2. Optimizar" name="optimize_btn"/>
<button label="1. Seleccionar archivo" name="choose_file_btn"/>
<panel name="choose_file_panel">
- <panel name="choose_file_header_panel">
- <text name="choose_file_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Elige el archivo de modelo
</text>
</panel>
- <panel name="choose_file_content_panel">
+ <panel name="content">
<text name="advanced_users_text">
Usuarios avanzados: si tienes experiencia con las herramientas de creación de contenidos 3D, quizá te interese utilizar la función de subida avanzada.
</text>
<button label="Cambiar al modo Avanzado" name="switch_to_advanced"/>
- <text name="choose_model_file_label">
+ <text name="Cache location">
Elige el archivo de modelo que deseas subir
</text>
<button label="Buscar..." label_selected="Buscar..." name="browse"/>
- <text name="support_collada_text">
- ‎Second Life admite los archivos COLLADA (.dae)
- </text>
- <text name="dimensions_label">
- Dimensiones (metros):
- </text>
<text name="dimensions">
X Y Z
</text>
@@ -38,18 +32,15 @@
</panel>
</panel>
<panel name="optimize_panel">
- <panel name="optimize_header_panel">
- <text name="optimize_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Optimizar el modelo
</text>
</panel>
- <text name="optimize_hint">
+ <text name="description">
Hemos optimizado el rendimiento del modelo, pero puedes ajustarlo más si lo deseas.
</text>
- <panel name="optimize_content_panel">
- <text name="generating_lod_label">
- Generando el nivel de detalle
- </text>
+ <panel name="content">
<text name="high_detail_text">
Generar el nivel de detalle: Alto
</text>
@@ -64,123 +55,64 @@
</text>
</panel>
<panel name="content2">
- <text name="optimize_performance_text">
- Rendimiento
- </text>
- <text name="optimize_faster_rendering_text">
- Renderizado más rápido
-Menos detalles
-Menos peso de prim
- </text>
- <text name="optimize_accuracy_text">
- Precisión
- </text>
- <text name="optimize_slower_rendering_text">
- Renderizado más lento
-Más detalles
-Más peso de prim
- </text>
- <text name="accuracy_slider_mark1">
- &apos;
- </text>
- <text name="accuracy_slider_mark2">
- &apos;
- </text>
- <text name="accuracy_slider_mark3">
- &apos;
- </text>
<button label="Recalcular la geometría" name="recalculate_geometry_btn"/>
- <text name="geometry_preview_label">
+ <text name="lod_label">
Vista previa de geometría
</text>
<combo_box name="preview_lod_combo" tool_tip="LOD para ver en renderizado de prueba">
- <combo_item name="preview_lod_high">
+ <combo_item name="high">
Detalle alto
</combo_item>
- <combo_item name="preview_lod_medium">
+ <combo_item name="medium">
Detalles medios
</combo_item>
- <combo_item name="preview_lod_low">
+ <combo_item name="low">
Detalle bajo
</combo_item>
- <combo_item name="preview_lod_lowest">
+ <combo_item name="lowest">
Detalles mínimos
</combo_item>
</combo_box>
</panel>
</panel>
<panel name="physics_panel">
- <panel name="physics_header_panel">
- <text name="physics_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Ajustar la física
</text>
</panel>
- <text name="physics_hint">
+ <text name="description">
Crearemos una forma para la apariencia exterior del modelo. Ajusta el nivel de detalle de la forma según se necesite para el propósito proyectado del modelo.
</text>
- <panel name="physics_content_panel">
- <text name="physics_performance_text">
- Rendimiento
- </text>
- <text name="physics_faster_rendering_text">
- Renderizado más rápido
-Menos detalles
-Menos peso de prim
- </text>
- <text name="physics_accuracy_text">
- Precisión
- </text>
- <text name="physics_slower_dendering_text">
- Renderizado más lento
-Más detalles
-Más peso de prim
- </text>
- <text name="physics_example_1">
- Ejemplos:
-Objetos en movimiento
-Objetos voladores
-Vehículos
- </text>
- <text name="physics_example_2">
- Ejemplos:
-Objetos estáticos pequeños
-Objetos con menos detalles
-Muebles sencillos
- </text>
- <text name="physics_example_3">
- Ejemplos:
-Objetos estáticos
-Objetos con detalles
-Edificios
- </text>
+ <panel name="content">
<button label="Recalcular física" name="recalculate_physics_btn"/>
<button label="Recalculando..." name="recalculating_physics_btn"/>
- <text name="physics_preview_label">
+ <text name="lod_label">
Prueba de física
</text>
<combo_box name="preview_lod_combo2" tool_tip="LOD para ver en renderizado de prueba">
- <combo_item name="preview_lod2_high">
+ <combo_item name="high">
Detalle alto
</combo_item>
- <combo_item name="preview_lod2_medium">
+ <combo_item name="medium">
Detalles medios
</combo_item>
- <combo_item name="preview_lod2_low">
+ <combo_item name="low">
Detalle bajo
</combo_item>
- <combo_item name="preview_lod2_lowest">
+ <combo_item name="lowest">
Detalles mínimos
</combo_item>
</combo_box>
</panel>
</panel>
<panel name="review_panel">
- <panel name="review_header_panel">
- <text name="review_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Revisar
</text>
</panel>
- <panel name="review_content_panel">
+ <panel name="content">
<text name="review_prim_equiv">
Impacto en la parcela/región: [EQUIV] equivalentes en prim
</text>
@@ -193,8 +125,8 @@ Edificios
</panel>
</panel>
<panel name="upload_panel">
- <panel name="upload_header_panel">
- <text name="upload_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Subida finalizada
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/es/floater_moveview.xml b/indra/newview/skins/default/xui/es/floater_moveview.xml
index 258f84c361..b29fe04848 100644
--- a/indra/newview/skins/default/xui/es/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/es/floater_moveview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="move_floater">
+<floater name="move_floater" title="MOVERME">
<string name="walk_forward_tooltip">
Caminar hacia adelante (cursor arriba o W)
</string>
@@ -58,14 +58,14 @@
Volar
</string>
<panel name="panel_actions">
- <button label="" label_selected="" name="move up btn" tool_tip="Volar (pulsa E para subir)"/>
<button label="" label_selected="" name="turn left btn" tool_tip="Girar a la izq. (cursor izq. o A)"/>
<joystick_slide name="move left btn" tool_tip="Caminar a la izq. (pulsa Mayúsculas + cursor izq. o A)"/>
- <button label="" label_selected="" name="move down btn" tool_tip="Volar (pulsa C para descender)"/>
<button label="" label_selected="" name="turn right btn" tool_tip="Girar a la der. (cursor der. o D)"/>
<joystick_slide name="move right btn" tool_tip="Caminar a la der. (pulsa Mayúsculas + cursor der. o D)"/>
<joystick_turn name="forward btn" tool_tip="Caminar hacia adelante (cursor arriba o W)"/>
<joystick_turn name="backward btn" tool_tip="Caminar de espaldas (cursor abajo o S)"/>
+ <button label="" label_selected="" name="move up btn" tool_tip="Volar (pulsa E para subir)"/>
+ <button label="" label_selected="" name="move down btn" tool_tip="Volar (pulsa C para descender)"/>
</panel>
<panel name="panel_modes">
<button label="" name="mode_walk_btn" tool_tip="Modo de caminar"/>
diff --git a/indra/newview/skins/default/xui/es/floater_my_appearance.xml b/indra/newview/skins/default/xui/es/floater_my_appearance.xml
new file mode 100644
index 0000000000..774babf04e
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_my_appearance.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_appearance" title="APARIENCIA">
+ <panel label="Modificar la apariencia" name="main_panel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_my_inventory.xml b/indra/newview/skins/default/xui/es/floater_my_inventory.xml
new file mode 100644
index 0000000000..0efd9f1c6d
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_my_inventory.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_inventory" title="INVENTARIO"/>
diff --git a/indra/newview/skins/default/xui/es/floater_object_weights.xml b/indra/newview/skins/default/xui/es/floater_object_weights.xml
new file mode 100644
index 0000000000..50c4f0518d
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_object_weights.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="object_weights" title="AVANZADAS">
+ <floater.string name="nothing_selected" value="--"/>
+ <text name="selected_text" value="SELECCIONADOS"/>
+ <text name="objects" value="--"/>
+ <text name="objects_label" value="Objetos"/>
+ <text name="prims" value="--"/>
+ <text name="prims_label" value="Primitivas"/>
+ <text name="weights_of_selected_text" value="PESOS DE SELECCIONADOS"/>
+ <text name="download" value="--"/>
+ <text name="download_label" value="Descargar"/>
+ <text name="physics" value="--"/>
+ <text name="physics_label" value="Física"/>
+ <text name="server" value="--"/>
+ <text name="server_label" value="Servidor"/>
+ <text name="display" value="--"/>
+ <text name="display_label" value="Mostrar"/>
+ <text name="land_impacts_text" value="IMPACTOS EN EL TERRENO"/>
+ <text name="selected" value="--"/>
+ <text name="selected_label" value="Seleccionados"/>
+ <text name="rezzed_on_land" value="--"/>
+ <text name="rezzed_on_land_label" value="Colocados en el terreno"/>
+ <text name="remaining_capacity" value="--"/>
+ <text name="remaining_capacity_label" value="Capacidad restante"/>
+ <text name="total_capacity" value="--"/>
+ <text name="total_capacity_label" value="Capacidad total"/>
+ <text name="help_SLURL" value="[secondlife:///app/help/object_weights ¿Qué es todo esto?...]"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/es/floater_outfit_save_as.xml
new file mode 100644
index 0000000000..f48d0d2d0c
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_outfit_save_as.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container" title="GUARDAR EL VESTUARIO"/>
diff --git a/indra/newview/skins/default/xui/es/floater_people.xml b/indra/newview/skins/default/xui/es/floater_people.xml
new file mode 100644
index 0000000000..f5a3eab008
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_people.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_people" title="GENTE">
+ <panel_container name="main_panel">
+ <panel label="Perfil del grupo" name="panel_group_info_sidetray"/>
+ <panel label="Residentes y objetos ignorados" name="panel_block_list_sidetray"/>
+ </panel_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_picks.xml b/indra/newview/skins/default/xui/es/floater_picks.xml
new file mode 100644
index 0000000000..255aa5dcdc
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_picks.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_picks" title="Destacados"/>
diff --git a/indra/newview/skins/default/xui/es/floater_places.xml b/indra/newview/skins/default/xui/es/floater_places.xml
new file mode 100644
index 0000000000..12c6548205
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_places.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_places" title="LUGARES">
+ <panel label="Lugares" name="main_panel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_sound_devices.xml b/indra/newview/skins/default/xui/es/floater_sound_devices.xml
index a5ffbd517a..0291f9e796 100644
--- a/indra/newview/skins/default/xui/es/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/es/floater_sound_devices.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_sound_devices" title="Dispositivos de sonido">
+<floater name="floater_sound_devices" title="DISPOSITIVOS DE SONIDO">
<text name="voice_label">
Chat de voz
</text>
diff --git a/indra/newview/skins/default/xui/es/floater_stats.xml b/indra/newview/skins/default/xui/es/floater_stats.xml
index 5f4fabf375..ba4af2e866 100644
--- a/indra/newview/skins/default/xui/es/floater_stats.xml
+++ b/indra/newview/skins/default/xui/es/floater_stats.xml
@@ -10,8 +10,8 @@
</stat_view>
<stat_view label="Avanzado" name="advanced">
<stat_view label="Renderización" name="render">
- <stat_bar label="KTris generados" name="ktrisframe"/>
- <stat_bar label="KTris generados" name="ktrissec"/>
+ <stat_bar label="KTris generados por fotograma" name="ktrisframe"/>
+ <stat_bar label="KTris generados por segundo" name="ktrissec"/>
<stat_bar label="Objetos en total" name="objs"/>
<stat_bar label="Objetos nuevos" name="newobjs"/>
</stat_view>
@@ -43,18 +43,6 @@
<stat_bar label="Pin de objetos" name="physicspinnedtasks"/>
<stat_bar label="Objetos con bajo nivel de detalle" name="physicslodtasks"/>
<stat_bar label="Memoria asignada" name="physicsmemoryallocated"/>
- <stat_bar label="Agentes: actual./seg." name="simagentups"/>
- <stat_bar label="Agentes del grid principal" name="simmainagents"/>
- <stat_bar label="Agentes secundarios" name="simchildagents"/>
- <stat_bar label="Objetos" name="simobjects"/>
- <stat_bar label="Objetos activos" name="simactiveobjects"/>
- <stat_bar label="Scripts activos" name="simactivescripts"/>
- <stat_bar label="Eventos de scripts" name="simscripteps"/>
- <stat_bar label="Paquetes salientes" name="siminpps"/>
- <stat_bar label="Paquetes entrantes" name="simoutpps"/>
- <stat_bar label="Descargas pendientes" name="simpendingdownloads"/>
- <stat_bar label="Subidas pendientes" name="simpendinguploads"/>
- <stat_bar label="Total de bytes no reconocidos" name="simtotalunackedbytes"/>
</stat_view>
<stat_view label="Tiempo (ms)" name="simperf">
<stat_bar label="Tiempo total de los frames" name="simframemsec"/>
@@ -64,6 +52,14 @@
<stat_bar label="Tiempo de los agentes" name="simagentmsec"/>
<stat_bar label="Tiempo de las imágenes" name="simimagesmsec"/>
<stat_bar label="Tiempo de los scripts" name="simscriptmsec"/>
+ <stat_bar label="Tiempo libre" name="simsparemsec"/>
+ <stat_view label="Datos de tiempo (ms)" name="timedetails">
+ <stat_bar label="Paso de física" name="simsimphysicsstepmsec"/>
+ <stat_bar label="Actualizar formas físicas" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="Otros (Física)" name="simsimphysicsothermsec"/>
+ <stat_bar label="Tiempo de suspensión" name="simsleepmsec"/>
+ <stat_bar label="E/S bombeo" name="simpumpiomsec"/>
+ </stat_view>
</stat_view>
</stat_view>
</container_view>
diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml
index f6e246ebae..650b4b457d 100644
--- a/indra/newview/skins/default/xui/es/floater_tools.xml
+++ b/indra/newview/skins/default/xui/es/floater_tools.xml
@@ -25,10 +25,10 @@
Pulsa y arrastra para seleccionar el terreno.
</floater.string>
<floater.string name="status_selectcount">
- [OBJ_COUNT] objetos ( [PRIM_COUNT] prims[PE_STRING] ) seleccionados
+ [OBJ_COUNT] objetos seleccionados, impacto en el terreno [LAND_IMPACT]
</floater.string>
- <floater.string name="status_selectprimequiv">
- , [SEL_WEIGHT] equivalentes en prim
+ <floater.string name="status_remaining_capacity">
+ Capacidad restante [LAND_CAPACITY].
</floater.string>
<button label="" label_selected="" name="button focus" tool_tip="Visión"/>
<button label="" label_selected="" name="button move" tool_tip="Mover"/>
@@ -105,8 +105,8 @@
<text name="selection_empty">
No está seleccionado nada.
</text>
- <text name="selection_weight">
- Peso de física [PHYS_WEIGHT], Coste de renderizado [DISP_WEIGHT].
+ <text name="remaining_capacity">
+ [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights Más información]
</text>
<tab_container name="Object Info Tabs" tab_max_width="62" tab_min_width="30" width="288">
<panel label="General" name="General">
@@ -319,7 +319,6 @@
Tipo de unión
</text>
<combo_box name="sculpt type control">
- <combo_box.item label="(ninguna)" name="None"/>
<combo_box.item label="Esfera" name="Sphere"/>
<combo_box.item label="Toroide" name="Torus"/>
<combo_box.item label="Plano" name="Plane"/>
diff --git a/indra/newview/skins/default/xui/es/floater_toybox.xml b/indra/newview/skins/default/xui/es/floater_toybox.xml
new file mode 100644
index 0000000000..b36a05a6e4
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/floater_toybox.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Toybox" title="PERSONALIZAR BARRAS DE HERRAMIENTAS">
+ <text name="toybox label 1">
+ Puedes agregar o quitar botones arrastrándolos a las barras de herramientas o desde ellas.
+ </text>
+ <text name="toybox label 2">
+ Los botones aparecerán como se muestra o solo como iconos, según la configuración de cada barra de herramientas.
+ </text>
+ <button label="Restaurar valores predeterminados" label_selected="Restaurar valores predeterminados" name="btn_restore_defaults"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_voice_controls.xml b/indra/newview/skins/default/xui/es/floater_voice_controls.xml
index f02855123c..cefec2a7a1 100644
--- a/indra/newview/skins/default/xui/es/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/es/floater_voice_controls.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_voice_controls" title="Controles de Voz">
+<floater name="floater_voice_controls" title="CONTROLES DE LA VOZ">
<string name="title_nearby">
- CHAT DE VOZ
+ Chat de voz
</string>
<string name="title_group">
Multiconferencia de voz con [GROUP]
diff --git a/indra/newview/skins/default/xui/es/menu_hide_navbar.xml b/indra/newview/skins/default/xui/es/menu_hide_navbar.xml
index 22a1873234..9945908c4f 100644
--- a/indra/newview/skins/default/xui/es/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/es/menu_hide_navbar.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="hide_navbar_menu">
- <menu_item_check label="Mostrar la barra de navegación" name="ShowNavbarNavigationPanel"/>
+ <menu_item_check label="Mostrar la barra de navegación y de favoritos" name="ShowNavbarNavigationPanel"/>
<menu_item_check label="Mostrar la barra de favoritos" name="ShowNavbarFavoritesPanel"/>
<menu_item_check label="Mostrar mini-barra de ubicación" name="ShowMiniLocationPanel"/>
</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_login.xml b/indra/newview/skins/default/xui/es/menu_login.xml
index cabcacaed5..e3abf7ad62 100644
--- a/indra/newview/skins/default/xui/es/menu_login.xml
+++ b/indra/newview/skins/default/xui/es/menu_login.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu_bar name="Login Menu">
<menu label="Yo" name="File">
- <menu_item_call label="Preferencias" name="Preferences..."/>
+ <menu_item_call label="Preferencias..." name="Preferences..."/>
<menu_item_call label="Salir de [APP_NAME]" name="Quit"/>
</menu>
<menu label="Ayuda" name="Help">
diff --git a/indra/newview/skins/default/xui/es/menu_toolbars.xml b/indra/newview/skins/default/xui/es/menu_toolbars.xml
new file mode 100644
index 0000000000..f8ed1c54ca
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_toolbars.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Toolbars Popup">
+ <menu_item_call label="Elegir botones..." name="Chose Buttons"/>
+ <menu_item_check label="Iconos y etiquetas" name="icons_with_text"/>
+ <menu_item_check label="Solo iconos" name="icons_only"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml
index bc8a5731ab..0714e7f2c6 100644
--- a/indra/newview/skins/default/xui/es/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/es/menu_viewer.xml
@@ -1,29 +1,30 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu_bar name="Main Menu">
<menu label="Yo" name="Me">
- <menu_item_call label="Preferencias" name="Preferences"/>
- <menu_item_call label="Mi panel de control" name="Manage My Account">
+ <menu_item_call label="Panel de control..." name="Manage My Account">
<menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=es"/>
</menu_item_call>
- <menu_item_call label="Comprar L$" name="Buy and Sell L$"/>
- <menu_item_call label="Mi perfil" name="Profile"/>
- <menu_item_call label="Mi apariencia" name="ChangeOutfit"/>
- <menu_item_check label="Mi Inventario" name="Inventory"/>
- <menu_item_check label="Mi Inventario" name="ShowSidetrayInventory"/>
- <menu_item_check label="Mis gestos" name="Gestures"/>
- <menu_item_check label="Mi voz" name="ShowVoice"/>
+ <menu_item_call label="Perfil..." name="Profile"/>
+ <menu_item_call label="Apariencia" name="ChangeOutfit"/>
+ <menu_item_check label="Inventario..." name="Inventory"/>
+ <menu_item_check label="Gestos..." name="Gestures"/>
+ <menu_item_check label="Voz..." name="ShowVoice"/>
<menu label="Movimiento" name="Movement">
<menu_item_call label="Sentarte" name="Sit Down Here"/>
<menu_item_check label="Volar" name="Fly"/>
<menu_item_check label="Correr siempre" name="Always Run"/>
<menu_item_call label="Parar mis animaciones" name="Stop Animating My Avatar"/>
</menu>
- <menu label="Mi estado" name="Status">
+ <menu label="Estado" name="Status">
<menu_item_call label="Ausente" name="Set Away"/>
<menu_item_call label="Ocupado" name="Set Busy"/>
</menu>
<menu_item_call label="Solicitar estatus de Administrador" name="Request Admin Options"/>
<menu_item_call label="Dejar el estatus de Administrador" name="Leave Admin Options"/>
+ <menu_item_call label="Comprar L$" name="Buy and Sell L$"/>
+ <menu_item_call label="Preferencias..." name="Preferences"/>
+ <menu_item_call label="Barras de herramientas..." name="Toolbars"/>
+ <menu_item_call label="Ocultar todos los controles" name="Hide UI"/>
<menu_item_call label="Salir de [APP_NAME]" name="Quit"/>
</menu>
<menu label="Comunicarme" name="Communicate">
@@ -145,7 +146,6 @@
</menu>
<menu label="Ayuda" name="Help">
<menu_item_call label="Ayuda de [SECOND_LIFE]" name="Second Life Help"/>
- <menu_item_check label="Permitir consejos" name="Enable Hints"/>
<menu_item_call label="Denunciar una infracción" name="Report Abuse"/>
<menu_item_call label="Informar de un fallo" name="Report Bug"/>
<menu_item_call label="Acerca de [APP_NAME]" name="About Second Life"/>
@@ -161,7 +161,7 @@
<menu label="Herramientas de rendimiento" name="Performance Tools">
<menu_item_call label="Medidor de lag" name="Lag Meter"/>
<menu_item_check label="Estadísticas" name="Statistics Bar"/>
- <menu_item_check label="Mostrar cuánto cuesta renderizar el avatar" name="Avatar Rendering Cost"/>
+ <menu_item_check label="Mostrar el peso del dibujo de los avatares" name="Avatar Rendering Cost"/>
</menu>
<menu label="Realzado y Visibilidad" name="Highlighting and Visibility">
<menu_item_check label="Baliza con destellos" name="Cheesy Beacon"/>
@@ -271,6 +271,7 @@
<menu_item_check label="Actualizar el tipo" name="Update Type"/>
<menu_item_check label="Información sobre el nivel de detalle" name="LOD Info"/>
<menu_item_check label="Crear cola" name="Build Queue"/>
+ <menu_item_check label="Complejidad del renderizado" name="rendercomplexity"/>
<menu_item_check label="Esculpir" name="Sculpt"/>
</menu>
<menu label="Rendering" name="Rendering">
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index 4fb29b9427..3fe0072a20 100644
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -1919,6 +1919,12 @@ Dado que estos objetos tienen scripts, moverlos a tu inventario puede provocar u
¿Estás seguro de que quieres salir?
<usetemplate ignoretext="Confirmar antes de salir" name="okcancelignore" notext="No salir" yestext="Salir"/>
</notification>
+ <notification name="ConfirmRestoreToybox">
+ ¿Estás seguro de que quieres restaurar los botones y barras de herramientas predeterminados?
+
+Esta acción no se puede deshacer.
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
<notification name="DeleteItems">
[QUESTION]
<usetemplate ignoretext="Confirmar antes de eliminar elementos" name="okcancelignore" notext="Cancelar" yestext="OK"/>
@@ -2999,10 +3005,6 @@ Al ocultar el botón Hablar se desactiva la función de voz.
<button name="cancel" text="Cancelar"/>
</form>
</notification>
- <notification label="" name="ModeChange">
- Para cambiar de modo tienes que salir y reiniciar.
- <usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/>
- </notification>
<notification label="" name="NoClassifieds">
La creación y edición de clasificados sólo está disponible en el modo Avanzado. ¿Quieres salir y cambiar de modo? El selector de modo se encuentra en la pantalla de inicio de sesión.
<usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/>
@@ -3047,6 +3049,10 @@ Al ocultar el botón Hablar se desactiva la función de voz.
Las búsquedas solo están disponibles en el modo Avanzado. ¿Quieres cerrar sesión y cambiar de modo?
<usetemplate name="okcancelbuttons" notext="No salir" yestext="Salir"/>
</notification>
+ <notification label="" name="ConfirmHideUI">
+ Esta acción ocultará todos los botones y elementos de menú. Para restaurarlos, pulsa otra vez en [SHORTCUT].
+ <usetemplate ignoretext="Confirmar antes de ocultar la IU" name="okcancelignore" notext="Cancelar" yestext="OK"/>
+ </notification>
<global name="UnsupportedGLRequirements">
Parece que no tienes el hardware apropiado para [APP_NAME]. [APP_NAME] requiere una tarjeta gráfica OpenGL que admita texturas múltiples (&apos;multitexture support&apos;). Si la tienes, comprueba que tienes los últimos &apos;drivers&apos; para tu tarjeta gráfica, así como los últimos parches y &apos;service packs&apos; para tu sistema operativo.
diff --git a/indra/newview/skins/default/xui/es/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/es/panel_chiclet_bar.xml
new file mode 100644
index 0000000000..eaaa5dbe78
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/panel_chiclet_bar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="chiclet_bar">
+ <layout_stack name="toolbar_stack">
+ <layout_panel name="im_well_panel">
+ <chiclet_im_well name="im_well">
+ <button name="Unread IM messages" tool_tip="Conversaciones"/>
+ </chiclet_im_well>
+ </layout_panel>
+ <layout_panel name="notification_well_panel">
+ <chiclet_notification name="notification_well">
+ <button name="Unread" tool_tip="Notificaciones"/>
+ </chiclet_notification>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_me.xml b/indra/newview/skins/default/xui/es/panel_me.xml
index ed253904aa..850cd6ec71 100644
--- a/indra/newview/skins/default/xui/es/panel_me.xml
+++ b/indra/newview/skins/default/xui/es/panel_me.xml
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Mi perfil" name="panel_me">
- <tab_container name="tabs">
- <panel label="MI PERFIL" name="panel_profile"/>
- <panel label="MIS DESTACADOS" name="panel_picks"/>
- </tab_container>
+ <panel label="MIS DESTACADOS" name="panel_picks"/>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_navigation_bar.xml b/indra/newview/skins/default/xui/es/panel_navigation_bar.xml
index 293c9ef1d9..1b7f5d5a9f 100644
--- a/indra/newview/skins/default/xui/es/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/es/panel_navigation_bar.xml
@@ -1,18 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="navigation_bar">
- <panel name="navigation_panel">
- <pull_button name="back_btn" tool_tip="Volver a la localización anterior"/>
- <pull_button name="forward_btn" tool_tip="Ir una localización adelante"/>
- <button name="home_btn" tool_tip="Teleportar a mi Base"/>
- <location_input label="Localización" name="location_combo"/>
- <search_combo_box label="Buscar" name="search_combo_box" tool_tip="Buscar">
- <combo_editor label="Buscar en [SECOND_LIFE]" name="search_combo_editor"/>
- </search_combo_box>
- </panel>
- <favorites_bar name="favorite" tool_tip="¡Accede rápidamente a tus lugares favoritos de Second Life arrastrando hitos hasta aquí!">
- <label name="favorites_bar_label" tool_tip="¡Accede rápidamente a tus lugares favoritos de Second Life arrastrando hitos hasta aquí!">
- Barra de Favoritos
- </label>
- <chevron_button name="&gt;&gt;" tool_tip="Ver más de Mis favoritos"/>
- </favorites_bar>
+ <layout_stack name="nvp_stack">
+ <layout_panel name="navigation_layout_panel">
+ <panel name="navigation_panel">
+ <pull_button name="back_btn" tool_tip="Volver a lo localización anterior"/>
+ <pull_button name="forward_btn" tool_tip="Ir una localización adelante"/>
+ <button name="home_btn" tool_tip="Teleportar a mi Base"/>
+ <location_input label="Lugar" name="location_combo"/>
+ </panel>
+ </layout_panel>
+ <layout_panel name="favorites_layout_panel">
+ <favorites_bar name="favorite" tool_tip="¡Accede rápidamente a tus lugares favoritos de Second Life arrastrando hitos hasta aquí!">
+ <label name="favorites_bar_label" tool_tip="¡Accede rápidamente a tus lugares favoritos de Second Life arrastrando hitos hasta aquí!">
+ Barra de Favoritos
+ </label>
+ <more_button name="&gt;&gt;" tool_tip="Ver más de Mis favoritos">
+ Más ▼
+ </more_button>
+ </favorites_bar>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_nearby_chat.xml b/indra/newview/skins/default/xui/es/panel_nearby_chat.xml
new file mode 100644
index 0000000000..95ce14c9a7
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/panel_nearby_chat.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="nearby_chat">
+ <check_box label="Traducir chat (mediante Google)" name="translate_chat_checkbox"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
index a15c8deaf9..4625075aa5 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
@@ -51,7 +51,7 @@
<combo_box.item label="Русский (ruso)" name="Russian"/>
<combo_box.item label="Türkçe (turco)" name="Turkish"/>
<combo_box.item label="Українська (ucraniano)" name="Ukrainian"/>
- <combo_box.item label="中文 (正體) (chino)" name="Chinese"/>
+ <combo_box.item label="中文 (正體) (Chino)" name="Chinese"/>
<combo_box.item label="日本語 (japonés)" name="Japanese"/>
<combo_box.item label="한국어 (coreano)" name="Korean"/>
</combo_box>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_general.xml b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
index c762e6b7fe..920729bb07 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
@@ -13,7 +13,10 @@
<combo_box.item label="Italiano - Beta" name="Italian"/>
<combo_box.item label="Polski (Polaco) - Beta" name="Polish"/>
<combo_box.item label="Português (portugués) - Beta" name="Portugese"/>
+ <combo_box.item label="Русский (Ruso) - Beta" name="Russian"/>
+ <combo_box.item label="Türkçe (Turco) - Beta" name="Turkish"/>
<combo_box.item label="日本語 (Japonés) - Beta" name="(Japanese)"/>
+ <combo_box.item label="正體 (Chino tradicional) - Beta" name="Traditional Chinese"/>
</combo_box>
<text name="language_textbox2">
(requiere reiniciar)
@@ -48,7 +51,6 @@
<check_box label="Títulos de grupos" name="show_all_title_checkbox1" tool_tip="Mostrar títulos de grupos, como Jefe o Miembro"/>
<check_box label="Realzar amigos" name="show_friends" tool_tip="Realzar las etiquetas de los nombres de tus amigos"/>
<check_box label="Ver nombres mostrados" name="display_names_check" tool_tip="Comprobar para utilizar nombres mostrados en chat, MI, etiquetas de nombres, etc."/>
- <check_box label="Permitir los consejos de la IU del visor" name="viewer_hints_check"/>
<text name="inworld_typing_rg_label">
Si pulsas las teclas de letras:
</text>
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_move.xml b/indra/newview/skins/default/xui/es/panel_preferences_move.xml
index d95e167361..b2ff6b61c2 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_move.xml
@@ -7,18 +7,33 @@
</text>
<check_box label="Construir/Editar" name="edit_camera_movement" tool_tip="Usar el posicionamiento automático de la cámara al entrar en o salir del modo de edición"/>
<check_box label="Apariencia" name="appearance_camera_movement" tool_tip="Usar el posicionamiento automático de la cámara mientras se está editando"/>
- <check_box initial_value="verdadero" label="Barra lateral" name="appearance_sidebar_positioning" tool_tip="Usar el posicionamiento automático de la cámara para la barra lateral"/>
+ <text name="keyboard_lbl">
+ Teclado:
+ </text>
+ <check_box label="Las teclas del cursor siempre para moverme" name="arrow_keys_move_avatar_check"/>
+ <check_box label="Correr siempre: atajo de teclado" name="tap_tap_hold_to_run"/>
+ <text name="mouse_lbl">
+ Ratón:
+ </text>
<check_box label="Verme en vista subjetiva" name="first_person_avatar_visible"/>
<text name=" Mouse Sensitivity">
Sensibilidad del ratón en la Vista subjetiva:
</text>
<check_box label="Invertir" name="invert_mouse"/>
- <check_box label="Las teclas del cursor siempre para moverme" name="arrow_keys_move_avatar_check"/>
- <check_box label="Correr siempre: atajo de teclado" name="tap_tap_hold_to_run"/>
- <check_box label="Haz doble clic para:" name="double_click_chkbox"/>
- <radio_group name="double_click_action">
- <radio_item label="Teleportarte" name="radio_teleport"/>
- <radio_item label="Piloto automático" name="radio_autopilot"/>
- </radio_group>
+ <text name="single_click_action_lbl">
+ Un clic en el terreno:
+ </text>
+ <combo_box name="single_click_action_combo">
+ <combo_box.item label="Ninguna acción" name="0"/>
+ <combo_box.item label="Ir al punto seleccionado" name="1"/>
+ </combo_box>
+ <text name="double_click_action_lbl">
+ Doble clic en el terreno:
+ </text>
+ <combo_box name="double_click_action_combo">
+ <combo_box.item label="Ninguna acción" name="0"/>
+ <combo_box.item label="Ir al punto seleccionado" name="1"/>
+ <combo_box.item label="Teleportarte al punto seleccionado" name="2"/>
+ </combo_box>
<button label="Otros dispositivos" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_status_bar.xml b/indra/newview/skins/default/xui/es/panel_status_bar.xml
index 0391258b75..d43790c8c6 100644
--- a/indra/newview/skins/default/xui/es/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/es/panel_status_bar.xml
@@ -17,12 +17,9 @@
</panel.string>
<panel name="balance_bg">
<text name="balance" tool_tip="Haz clic para actualizar tu saldo en L$" value="20 L$"/>
- <button label="COMPRAR L$" name="buyL" tool_tip="Pulsa para comprar más L$"/>
+ <button label="Comprar L$" name="buyL" tool_tip="Pulsa para comprar más L$"/>
+ <button label="Comprar" name="goShop" tool_tip="Abrir el mercado de Second Life"/>
</panel>
- <combo_box name="mode_combo" tool_tip="Selecciona el modo. Elige Básico para una exploración rápida y fácil y para chatear. Elige Avanzado para tener acceso a más funciones.">
- <combo_box.item label="Modo Básico" name="Basic"/>
- <combo_box.item label="Modo Avanzado" name="Advanced"/>
- </combo_box>
<text name="TimeText" tool_tip="Hora actual (Pacífico)">
24:00 AM PST
</text>
diff --git a/indra/newview/skins/default/xui/es/sidepanel_inventory.xml b/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
index aae9bfc113..79d0cb84e8 100644
--- a/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/es/sidepanel_inventory.xml
@@ -14,7 +14,7 @@
</string>
<button label="Objetos recibidos" name="inbox_btn"/>
<text name="inbox_fresh_new_count">
- [NUM] Nuevos
+ [NUM] nuevos
</text>
<panel tool_tip="Drag and drop items to your inventory to manage and use them">
<text name="inbox_inventory_placeholder">
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index cc044ba416..83747b85c0 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -34,6 +34,9 @@
<string name="ProgressChangingResolution">
Cambiando la resolución...
</string>
+ <string name="Fullbright">
+ Brillo al máximo (antiguo)
+ </string>
<string name="LoginInProgress">
Iniciando la sesión. [APP_NAME] debe de aparecer congelado. Por favor, espere.
</string>
@@ -116,7 +119,7 @@
No se pudo verificar la firma del certificado devuelta por el servidor de la cuadrícula. Ponte en contacto con el administrador de la cuadrícula.
</string>
<string name="LoginFailedNoNetwork">
- Error de red: no se ha podido conectar; por favor, revisa tu conexión a Internet.
+ Error de red: no se ha podido conectar; por favor, revisa tu conexión a internet.
</string>
<string name="LoginFailed">
Error en el inicio de sesión.
@@ -1255,6 +1258,9 @@ Intenta iniciar sesión de nuevo en unos instantes.
<string name="Marketplace Error Internal Import">
Error: Este objeto tiene un problema. Vuelve a intentarlo más tarde.
</string>
+ <string name="Open landmarks">
+ Abrir hitos
+ </string>
<string name="no_transfer" value="(no transferible)"/>
<string name="no_modify" value="(no modificable)"/>
<string name="no_copy" value="(no copiable)"/>
@@ -4158,8 +4164,8 @@ Denuncia de infracción
<string name="Female - Wow">
Mujer - Admiración
</string>
- <string name="/bow1">
- /reverencia1
+ <string name="/bow">
+ /reverencia
</string>
<string name="/clap">
/aplaudir
@@ -4671,4 +4677,172 @@ Inténtalo incluyendo la ruta de acceso al editor entre comillas
<string name="ParticleHiding">
Ocultando las partículas
</string>
+ <string name="Command_AboutLand_Label">
+ Acerca del terreno
+ </string>
+ <string name="Command_Appearance_Label">
+ Apariencia
+ </string>
+ <string name="Command_Avatar_Label">
+ Avatar
+ </string>
+ <string name="Command_Build_Label">
+ Construir
+ </string>
+ <string name="Command_Chat_Label">
+ Chat
+ </string>
+ <string name="Command_Compass_Label">
+ Brújula
+ </string>
+ <string name="Command_Destinations_Label">
+ Destinos
+ </string>
+ <string name="Command_Gestures_Label">
+ Gestos
+ </string>
+ <string name="Command_HowTo_Label">
+ Cómo
+ </string>
+ <string name="Command_Inventory_Label">
+ Inventario
+ </string>
+ <string name="Command_Map_Label">
+ Mapa
+ </string>
+ <string name="Command_Marketplace_Label">
+ Mercado
+ </string>
+ <string name="Command_MiniMap_Label">
+ Minimapa
+ </string>
+ <string name="Command_Move_Label">
+ Moverme
+ </string>
+ <string name="Command_People_Label">
+ Gente
+ </string>
+ <string name="Command_Picks_Label">
+ Destacados
+ </string>
+ <string name="Command_Places_Label">
+ Lugares
+ </string>
+ <string name="Command_Preferences_Label">
+ Preferencias
+ </string>
+ <string name="Command_Profile_Label">
+ Perfil
+ </string>
+ <string name="Command_Search_Label">
+ Buscar
+ </string>
+ <string name="Command_Snapshot_Label">
+ Foto
+ </string>
+ <string name="Command_Speak_Label">
+ Hablar
+ </string>
+ <string name="Command_View_Label">
+ Visión
+ </string>
+ <string name="Command_Voice_Label">
+ Chat de voz
+ </string>
+ <string name="Command_AboutLand_Tooltip">
+ Información sobre el terreno que vas a visitar
+ </string>
+ <string name="Command_Appearance_Tooltip">
+ Cambiar tu avatar
+ </string>
+ <string name="Command_Avatar_Tooltip">
+ Elegir un avatar completo
+ </string>
+ <string name="Command_Build_Tooltip">
+ Construir objetos y modificar la forma del terreno
+ </string>
+ <string name="Command_Chat_Tooltip">
+ Habla por chat de texto con las personas próximas
+ </string>
+ <string name="Command_Compass_Tooltip">
+ Brújula
+ </string>
+ <string name="Command_Destinations_Tooltip">
+ Destinos de interés
+ </string>
+ <string name="Command_Gestures_Tooltip">
+ Gestos para tu avatar
+ </string>
+ <string name="Command_HowTo_Tooltip">
+ Cómo hacer las tareas habituales
+ </string>
+ <string name="Command_Inventory_Tooltip">
+ Ver y usar tus pertenencias
+ </string>
+ <string name="Command_Map_Tooltip">
+ Mapa del mundo
+ </string>
+ <string name="Command_Marketplace_Tooltip">
+ Ir de compras
+ </string>
+ <string name="Command_MiniMap_Tooltip">
+ Mostrar la gente que está cerca
+ </string>
+ <string name="Command_Move_Tooltip">
+ Desplazando el avatar
+ </string>
+ <string name="Command_People_Tooltip">
+ Amigos, grupos y personas próximas
+ </string>
+ <string name="Command_Picks_Tooltip">
+ Lugares que se mostrarán como favoritos en tu perfil
+ </string>
+ <string name="Command_Places_Tooltip">
+ Lugares que has guardado
+ </string>
+ <string name="Command_Preferences_Tooltip">
+ Preferencias
+ </string>
+ <string name="Command_Profile_Tooltip">
+ Consulta o edita tu perfil
+ </string>
+ <string name="Command_Search_Tooltip">
+ Buscar lugares, eventos y personas
+ </string>
+ <string name="Command_Snapshot_Tooltip">
+ Tomar una fotografía
+ </string>
+ <string name="Command_Speak_Tooltip">
+ Utiliza el micrófono para hablar con las personas próximas
+ </string>
+ <string name="Command_View_Tooltip">
+ Cambiando el ángulo de la cámara
+ </string>
+ <string name="Command_Voice_Tooltip">
+ Personas próximas con capacidad de voz
+ </string>
+ <string name="Retain%">
+ % retención
+ </string>
+ <string name="Detail">
+ Detalle
+ </string>
+ <string name="Better Detail">
+ Mejor detalle
+ </string>
+ <string name="Surface">
+ Superficie
+ </string>
+ <string name="Solid">
+ Sólido
+ </string>
+ <string name="Wrap">
+ Envoltura
+ </string>
+ <string name="Preview">
+ Vista previa
+ </string>
+ <string name="Normal">
+ Normal
+ </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 db4dbe02e2..68d073a766 100644
--- a/indra/newview/skins/default/xui/it/floater_about.xml
+++ b/indra/newview/skins/default/xui/it/floater_about.xml
@@ -8,9 +8,9 @@
Generato con [COMPILER] versione [COMPILER_VERSION]
</floater.string>
<floater.string name="AboutPosition">
- Tu sei [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] in [REGION] located at &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
+ Tu sei [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] in [REGION] che si trova a &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP])
[SERVER_VERSION]
-[[SERVER_RELEASE_NOTES_URL] [ReleaseNotes]]
+[SERVER_RELEASE_NOTES_URL]
</floater.string>
<floater.string name="AboutSystem">
CPU: [CPU]
@@ -37,6 +37,9 @@ Versione Server voice: [VOICE_VERSION]
<floater.string name="AboutTraffic">
Pacchetti perduti: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%) Informazioni
</floater.string>
+ <floater.string name="ErrorFetchingServerReleaseNotesURL">
+ Errore nel recupero URL note rilascio versione
+ </floater.string>
<tab_container name="about_tab">
<panel label="Informazioni" name="support_panel">
<button label="Copia negli appunti" name="copy_btn"/>
diff --git a/indra/newview/skins/default/xui/it/floater_about_land.xml b/indra/newview/skins/default/xui/it/floater_about_land.xml
index cf0f8f2f6f..b6bfb4aadf 100644
--- a/indra/newview/skins/default/xui/it/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_about_land.xml
@@ -218,19 +218,19 @@ o suddivisa.
Fattore bonus degli oggetti della regione: [BONUS]
</text>
<text name="Simulator primitive usage:">
- Uso delle primitive:
+ Capacità regione:
</text>
<text name="objects_available">
[COUNT] dei [MAX] ([AVAILABLE] dsponibili)
</text>
<text name="Primitives parcel supports:">
- Oggetti che il terreno supporta:
+ Capacità lotto di terreno:
</text>
<text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
- Oggetti sul terreno:
+ Impatto lotto di terreno:
</text>
<text name="total_objects_text">
[COUNT]
diff --git a/indra/newview/skins/default/xui/it/floater_avatar.xml b/indra/newview/skins/default/xui/it/floater_avatar.xml
new file mode 100644
index 0000000000..1587c347a5
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_avatar.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Avatar" title="SCELTA AVATAR"/>
diff --git a/indra/newview/skins/default/xui/it/floater_camera.xml b/indra/newview/skins/default/xui/it/floater_camera.xml
index 3fdf4f48a2..be4b8e210d 100644
--- a/indra/newview/skins/default/xui/it/floater_camera.xml
+++ b/indra/newview/skins/default/xui/it/floater_camera.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="camera_floater" title="">
+<floater name="camera_floater" title="VISTA">
<floater.string name="rotate_tooltip">
Ruota la telecamera Intorno all&apos;Inquadratura
</floater.string>
diff --git a/indra/newview/skins/default/xui/it/floater_chat_bar.xml b/indra/newview/skins/default/xui/it/floater_chat_bar.xml
new file mode 100644
index 0000000000..6c5c8fbea0
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_chat_bar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="chat_bar" title="CHAT NEI DINTORNI">
+ <panel>
+ <line_editor label="Clicca qui per la chat." name="chat_box" tool_tip="Premi Invio per parlare, Ctrl+Invio per gridare"/>
+ <button name="show_nearby_chat" tool_tip="Mostra/Nasconde il registro della chat nei dintorni"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_destinations.xml b/indra/newview/skins/default/xui/it/floater_destinations.xml
new file mode 100644
index 0000000000..242403e431
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_destinations.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Destinations" title="DESTINAZIONI"/>
diff --git a/indra/newview/skins/default/xui/it/floater_fast_timers.xml b/indra/newview/skins/default/xui/it/floater_fast_timers.xml
new file mode 100644
index 0000000000..52ab6b0c3d
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_fast_timers.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="fast_timers">
+ <string name="pause">
+ Pausa
+ </string>
+ <string name="run">
+ Correre
+ </string>
+ <button label="Pausa" name="pause_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_how_to.xml b/indra/newview/skins/default/xui/it/floater_how_to.xml
new file mode 100644
index 0000000000..8f0e210571
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_how_to.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_how_to" title="ISTRUZIONI"/>
diff --git a/indra/newview/skins/default/xui/it/floater_map.xml b/indra/newview/skins/default/xui/it/floater_map.xml
index bf19ba6674..5e4e4abca4 100644
--- a/indra/newview/skins/default/xui/it/floater_map.xml
+++ b/indra/newview/skins/default/xui/it/floater_map.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Map" title="">
+<floater name="Map" title="MINI MAPPA">
<floater.string name="ToolTipMsg">
[REGION](Fai doppio clic per aprire la Mappa, premi il tasto Maiusc e trascina per la panoramica)
</floater.string>
@@ -7,7 +7,7 @@
[REGION](Fai doppio clic per teleportarti, premi il tasto Maiusc e trascina per la panoramica)
</floater.string>
<floater.string name="mini_map_caption">
- MINI MAPPA
+ Mini mappa
</floater.string>
<text label="N" name="floater_map_north" text="N">
N
diff --git a/indra/newview/skins/default/xui/it/floater_model_preview.xml b/indra/newview/skins/default/xui/it/floater_model_preview.xml
index 931fe7d382..03102f5f81 100644
--- a/indra/newview/skins/default/xui/it/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/it/floater_model_preview.xml
@@ -1,10 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Model Preview" title="Carica modello">
- <string name="status_idle">
- Pausa
- </string>
+<floater name="Model Preview" title="CARICAMENTO MODELLO">
+ <string name="status_idle"/>
<string name="status_parse_error">
- Problema nell&apos;elaborazione DAE - vedi il registro per informazioni al riguardo.
+ Errore: Errore elaborazione Dae - vedere il registro per informazioni dettagliate.
</string>
<string name="status_reading_file">
Caricamento in corso...
@@ -51,6 +49,9 @@
<string name="mesh_status_missing_lod">
Livello di dettaglio minimo mancante.
</string>
+ <string name="mesh_status_invalid_material_list">
+ I materiali per il livello di dettaglio non sono un sottoinsieme del modello di riferimento.
+ </string>
<string name="layer_all">
Tutto
</string>
@@ -63,188 +64,211 @@
<string name="tbd">
Da definire
</string>
- <text name="name_label">
- Nome:
- </text>
- <text name="lod_label">
- Anteprima:
- </text>
- <combo_box name="preview_lod_combo" tool_tip="Livello di dettaglio per anteprima rendering">
- <combo_item name="high">
- Livello di dettaglio: Alto
- </combo_item>
- <combo_item name="medium">
- Livello di dettaglio: Medio
- </combo_item>
- <combo_item name="low">
- Livello di dettaglio: Basso
- </combo_item>
- <combo_item name="lowest">
- Livello di dettaglio: Bassissimo
- </combo_item>
- </combo_box>
- <text name="warning_title">
- ATTENZIONE:
- </text>
- <text name="warning_message">
- Non sarà possibile completare il caricamento finale di questo modello sui server di Second Life. [[VURL] Scopri come] ricevere l&apos;autorizzazione per il caricamento dei modelli con reticolo.
- </text>
- <text name="weights_text">
- Download:
-Fisica:
-Server:
-
-Prim equivalenti:
- </text>
- <text name="weights">
- [ST]
-[PH]
-[SIM]
-
-[EQ]
- </text>
- <tab_container name="import_tab">
- <panel label="Livello di dettaglio" name="lod_panel">
- <text name="lod_table_header">
- Seleziona livello di dettaglio:
- </text>
- <text name="high_label" value="Alto"/>
- <text name="high_triangles" value="0"/>
- <text name="high_vertices" value="0"/>
- <text name="medium_label" value="Medio"/>
- <text name="medium_triangles" value="0"/>
- <text name="medium_vertices" value="0"/>
- <text name="low_label" value="Basso"/>
- <text name="low_triangles" value="0"/>
- <text name="low_vertices" value="0"/>
- <text name="lowest_label" value="Bassissimo"/>
- <text name="lowest_triangles" value="0"/>
- <text name="lowest_vertices" value="0"/>
- <text name="lod_table_footer">
- Livello di dettaglio: [DETAIL]
- </text>
- <radio_group name="lod_file_or_limit" value="lod_from_file">
- <radio_item label="Carica da file" name="lod_from_file"/>
- <radio_item label="Genera automaticamente" name="lod_auto_generate"/>
- <radio_item label="Nessuno" name="lod_none"/>
- </radio_group>
- <button label="Sfoglia..." name="lod_browse"/>
- <combo_box name="lod_mode">
- <combo_item name="triangle_limit">
- Limite triangoli
- </combo_item>
- <combo_item name="error_threshold">
- Limite errori
- </combo_item>
- </combo_box>
- <text name="build_operator_text">
- Operatore costruzione:
+ <panel name="left_panel">
+ <panel name="model_name_representation_panel">
+ <text name="name_label">
+ Nome modello:
</text>
- <text name="queue_mode_text">
- Modalità di coda:
+ <text name="model_category_label">
+ Questo modello rappresenta...
</text>
- <combo_box name="build_operator">
- <combo_item name="edge_collapse">
- Collassa bordo
- </combo_item>
- <combo_item name="half_edge_collapse">
- Collassa mezzo bordo
- </combo_item>
- </combo_box>
- <combo_box name="queue_mode">
- <combo_item name="greedy">
- Ingordo
- </combo_item>
- <combo_item name="lazy">
- Pigro
- </combo_item>
- <combo_item name="independent">
- Indipendente
- </combo_item>
+ <combo_box name="model_category_combo">
+ <combo_item label="Seleziona uno..." name="Choose one"/>
+ <combo_item label="Forma avatar" name="Avatar shape"/>
+ <combo_item label="Elemento collegato all&apos;avatar" name="Avatar attachment"/>
+ <combo_item label="Oggetto mobile (veicolo, animale)" name="Moving object (vehicle, animal)"/>
+ <combo_item label="Componente edificio" name="Building Component"/>
+ <combo_item label="Grande, immobile, ecc." name="Large, non moving etc"/>
+ <combo_item label="Piccolo, immobile, ecc." name="Smaller, non-moving etc"/>
+ <combo_item label="Nessuno di questi" name="Not really any of these"/>
</combo_box>
- <text name="border_mode_text">
- Modalità bordo:
- </text>
- <text name="share_tolderance_text">
- Tolleranza condivisione:
- </text>
- <combo_box name="border_mode">
- <combo_item name="border_unlock">
- Sblocca
- </combo_item>
- <combo_item name="border_lock">
- Blocca
- </combo_item>
- </combo_box>
- <text name="crease_label">
- Angolo piega:
- </text>
- <spinner name="crease_angle" value="75"/>
</panel>
- <panel label="Fisica" name="physics_panel">
- <panel name="physics geometry">
- <radio_group name="physics_load_radio" value="physics_load_from_file">
- <radio_item label="File:" name="physics_load_from_file"/>
- <radio_item label="Usa livello di dettaglio:" name="physics_use_lod"/>
- </radio_group>
- <combo_box name="physics_lod_combo" tool_tip="Livello di dettaglio per forma fisica">
- <combo_item name="physics_lowest">
- Bassissimo
- </combo_item>
- <combo_item name="physics_low">
- Basso
- </combo_item>
- <combo_item name="physics_medium">
- Medio
- </combo_item>
- <combo_item name="physics_high">
- Alto
- </combo_item>
- </combo_box>
- <button label="Sfoglia..." name="physics_browse"/>
+ <tab_container name="import_tab">
+ <panel label="Livello di dettaglio" name="lod_panel" title="Livello di dettaglio">
+ <text initial_value="Fonte" name="source" value="Fonte"/>
+ <text initial_value="Triangoli" name="triangles" value="Triangoli"/>
+ <text initial_value="Vertici" name="vertices" value="Vertici"/>
+ <text initial_value="Alto" name="high_label" value="Alto"/>
+ <button label="Sfoglia..." name="lod_browse_high"/>
+ <text initial_value="0" name="high_triangles" value="0"/>
+ <text initial_value="0" name="high_vertices" value="0"/>
+ <text initial_value="Medio" name="medium_label" value="Medio"/>
+ <button label="Sfoglia..." name="lod_browse_medium"/>
+ <text initial_value="0" name="medium_triangles" value="0"/>
+ <text initial_value="0" name="medium_vertices" value="0"/>
+ <text initial_value="Basso" name="low_label" value="Basso"/>
+ <button label="Sfoglia..." name="lod_browse_low"/>
+ <text initial_value="0" name="low_triangles" value="0"/>
+ <text initial_value="0" name="low_vertices" value="0"/>
+ <text initial_value="Bassissimo" name="lowest_label" value="Bassissimo"/>
+ <button label="Sfoglia..." name="lod_browse_lowest"/>
+ <text initial_value="0" name="lowest_triangles" value="0"/>
+ <text initial_value="0" name="lowest_vertices" value="0"/>
+ <check_box label="Genera normali" name="gen_normals"/>
+ <text initial_value="Angolo piega:" name="crease_label" value="Angolo piega:"/>
+ <spinner name="crease_angle" value="75"/>
</panel>
- <panel name="physics analysis">
- <slider label="Liscia:" name="Smooth"/>
- <check_box label="Chiudi fori (lento)" name="Close Holes (Slow)"/>
- <button label="Analizza" name="Decompose"/>
- <button label="Annulla" name="decompose_cancel"/>
+ <panel label="Fisica" name="physics_panel">
+ <panel name="physics geometry">
+ <text name="first_step_name">
+ Passaggio 1: Livello di dettaglio
+ </text>
+ <combo_box name="physics_lod_combo" tool_tip="Livello di dettaglio per forma fisica">
+ <combo_item name="choose_one">
+ Seleziona uno...
+ </combo_item>
+ <combo_item name="physics_high">
+ Alto
+ </combo_item>
+ <combo_item name="physics_medium">
+ Medio
+ </combo_item>
+ <combo_item name="physics_low">
+ Basso
+ </combo_item>
+ <combo_item name="physics_lowest">
+ Bassissimo
+ </combo_item>
+ <combo_item name="load_from_file">
+ Da file
+ </combo_item>
+ </combo_box>
+ <button label="Sfoglia..." name="physics_browse"/>
+ </panel>
+ <panel name="physics analysis">
+ <text name="method_label">
+ Passaggio 2: Analizza
+ </text>
+ <text name="analysis_method_label">
+ Metodo:
+ </text>
+ <text name="quality_label">
+ Qualità:
+ </text>
+ <text name="smooth_method_label">
+ Liscia:
+ </text>
+ <check_box label="Chiudi fori" name="Close Holes (Slow)"/>
+ <button label="Analizza" name="Decompose"/>
+ <button label="Annulla" name="decompose_cancel"/>
+ </panel>
+ <panel name="physics simplification">
+ <text name="second_step_label">
+ Passaggio 3: Semplifica
+ </text>
+ <text name="simp_method_header">
+ Metodo:
+ </text>
+ <text name="pass_method_header">
+ Passaggi:
+ </text>
+ <text name="Detail Scale label">
+ Scala dettagli:
+ </text>
+ <text name="Retain%_label">
+ Mantieni:
+ </text>
+ <combo_box name="Combine Quality" value="1"/>
+ <button label="Semplifica" name="Simplify"/>
+ <button label="Annulla" name="simplify_cancel"/>
+ </panel>
+ <panel name="physics info">
+ <text name="results_text">
+ Risultati:
+ </text>
+ <text name="physics_triangles">
+ Triangoli: [TRIANGLES],
+ </text>
+ <text name="physics_points">
+ Vertici: [POINTS],
+ </text>
+ <text name="physics_hulls">
+ Scafi: [HULLS]
+ </text>
+ </panel>
</panel>
- <panel name="physics simplification">
- <slider label="Passaggi:" name="Combine Quality"/>
- <slider label="Scala dettagli:" name="Detail Scale"/>
- <slider label="Mantieni:" name="Retain%"/>
- <button label="Semplifica" name="Simplify"/>
- <button label="Annulla" name="simplify_cancel"/>
- </panel>
- <panel name="physics info">
- <slider label="Ampiezza anteprima:" name="physics_explode"/>
- <text name="physics_triangles">
- Triangoli: [TRIANGLES]
+ <panel label="Carica opzioni" name="modifiers_panel">
+ <text name="scale_label">
+ Scala (1=nessuna scala):
+ </text>
+ <spinner name="import_scale" value="1.0"/>
+ <text name="dimensions_label">
+ Dimensioni:
</text>
- <text name="physics_points">
- Vertici: [POINTS]
+ <text name="import_dimensions">
+ [X] X [Y] X [Z]
</text>
- <text name="physics_hulls">
- Inviluppi: [HULLS]
+ <check_box label="Includi texture" name="upload_textures"/>
+ <text name="include_label">
+ Solo per modelli avatar:
</text>
+ <check_box label="Includi peso pelle" name="upload_skin"/>
+ <check_box label="Includi posizioni giunti" name="upload_joints"/>
+ <text name="pelvis_offset_label">
+ Spostamento Z (sposta l&apos;avatar in alto o in basso):
+ </text>
+ <spinner name="pelvis_offset" value="0.0"/>
</panel>
- </panel>
- <panel label="Modificatori" name="modifiers_panel">
- <spinner name="import_scale" value="1.0"/>
- <text name="import_dimensions">
- [X] x [Y] x [Z] m
+ </tab_container>
+ <panel name="weights_and_warning_panel">
+ <button label="Calcolare pesi e tariffa" name="calculate_btn" tool_tip="Calcolare pesi e tariffa"/>
+ <button label="Annulla" name="cancel_btn"/>
+ <button label="Carica" name="ok_btn" tool_tip="Carica al simulatore"/>
+ <button label="Annulla impostazioni e ripristina modulo" name="reset_btn"/>
+ <text name="upload_fee">
+ Costo caricamento: L$ [FEE]
+ </text>
+ <text name="prim_weight">
+ Impatto sul terreno: [EQ]
+ </text>
+ <text name="download_weight">
+ Download: [ST]
+ </text>
+ <text name="physics_weight">
+ Fisica: [PH]
+ </text>
+ <text name="server_weight">
+ Server: [SIM]
+ </text>
+ <text name="warning_title">
+ NOTA:
+ </text>
+ <text name="warning_message">
+ Non hai l&apos;autorizzazione per caricare i modelli di reticolo. [[VURL] Scopri come] ottenere la certificazione.
+ </text>
+ <text name="status">
+ [STATUS]
</text>
- <check_box label="Texture" name="upload_textures"/>
- <check_box label="Peso pelle" name="upload_skin"/>
- <check_box label="Posizioni giunti" name="upload_joints"/>
- <spinner name="pelvis_offset" value="0.0"/>
</panel>
- </tab_container>
- <text name="upload_fee">
- Costo caricamento: L$ [FEE]
+ </panel>
+ <text name="lod_label">
+ Anteprima:
</text>
- <button label="Imposta sui valori predefiniti" name="reset_btn" tool_tip="Imposta sui valori predefiniti"/>
- <button label="Calcolare pesi e tariffa" name="calculate_btn" tool_tip="Calcolare pesi e tariffa"/>
- <button label="Carica sul server" name="ok_btn" tool_tip="Carica al simulatore"/>
- <button label="Annulla" name="cancel_btn"/>
+ <panel name="right_panel">
+ <combo_box name="preview_lod_combo" tool_tip="Livello di dettaglio per anteprima rendering">
+ <combo_item name="high">
+ Alto
+ </combo_item>
+ <combo_item name="medium">
+ Medio
+ </combo_item>
+ <combo_item name="low">
+ Basso
+ </combo_item>
+ <combo_item name="lowest">
+ Bassissimo
+ </combo_item>
+ </combo_box>
+ <text name="label_display">
+ Visualizzazione...
+ </text>
+ <check_box label="Bordi" name="show_edges"/>
+ <check_box label="Fisica" name="show_physics"/>
+ <check_box label="Texture" name="show_textures"/>
+ <check_box label="Pesi pelle" name="show_skin_weight"/>
+ <check_box label="Giunti" name="show_joint_positions"/>
+ <text name="physics_explode_label">
+ Anteprima spaziatura:
+ </text>
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_model_wizard.xml b/indra/newview/skins/default/xui/it/floater_model_wizard.xml
index dbf41e2daf..e6d0a7c4bc 100644
--- a/indra/newview/skins/default/xui/it/floater_model_wizard.xml
+++ b/indra/newview/skins/default/xui/it/floater_model_wizard.xml
@@ -6,26 +6,20 @@
<button label="2. Ottimizza" name="optimize_btn"/>
<button label="1. Seleziona file" name="choose_file_btn"/>
<panel name="choose_file_panel">
- <panel name="choose_file_header_panel">
- <text name="choose_file_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Seleziona file modello
</text>
</panel>
- <panel name="choose_file_content_panel">
+ <panel name="content">
<text name="advanced_users_text">
Utenti avanzati: Gli utenti che hanno dimestichezza con gli strumenti di creazione 3D possono usare le opzioni di caricamento avanzate.
</text>
<button label="Passa a modalità avanzata" name="switch_to_advanced"/>
- <text name="choose_model_file_label">
+ <text name="Cache location">
Scegli il file del modello da caricare
</text>
<button label="Sfoglia..." label_selected="Sfoglia..." name="browse"/>
- <text name="support_collada_text">
- Second Life supporta file COLLADA (.dae)
- </text>
- <text name="dimensions_label">
- Dimensioni (metri):
- </text>
<text name="dimensions">
X Y Z
</text>
@@ -38,18 +32,15 @@
</panel>
</panel>
<panel name="optimize_panel">
- <panel name="optimize_header_panel">
- <text name="optimize_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Ottimizza modello
</text>
</panel>
- <text name="optimize_hint">
+ <text name="description">
Abbiamo ottimizzato il modello per migliorare le prestazioni. Se necessario, può essere regolato ulteriormente.
</text>
- <panel name="optimize_content_panel">
- <text name="generating_lod_label">
- Generazione livello di dettaglio
- </text>
+ <panel name="content">
<text name="high_detail_text">
Genera livello di dettaglio: Alto
</text>
@@ -64,123 +55,64 @@
</text>
</panel>
<panel name="content2">
- <text name="optimize_performance_text">
- Prestazioni
- </text>
- <text name="optimize_faster_rendering_text">
- Rendering più veloce
-Meno dettagli
-Peso prim più basso
- </text>
- <text name="optimize_accuracy_text">
- Fedeltà
- </text>
- <text name="optimize_slower_rendering_text">
- Rendering più lento
-Più dettagli
-Peso prim più elevato
- </text>
- <text name="accuracy_slider_mark1">
- &apos;
- </text>
- <text name="accuracy_slider_mark2">
- &apos;
- </text>
- <text name="accuracy_slider_mark3">
- &apos;
- </text>
<button label="Ricalcola geometria" name="recalculate_geometry_btn"/>
- <text name="geometry_preview_label">
+ <text name="lod_label">
Anteprima geometria
</text>
<combo_box name="preview_lod_combo" tool_tip="Livello di dettaglio per anteprima rendering">
- <combo_item name="preview_lod_high">
+ <combo_item name="high">
Molti dettagli
</combo_item>
- <combo_item name="preview_lod_medium">
+ <combo_item name="medium">
Dettagli medi
</combo_item>
- <combo_item name="preview_lod_low">
+ <combo_item name="low">
Meno dettagli
</combo_item>
- <combo_item name="preview_lod_lowest">
+ <combo_item name="lowest">
Dettaglio minimo
</combo_item>
</combo_box>
</panel>
</panel>
<panel name="physics_panel">
- <panel name="physics_header_panel">
- <text name="physics_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Modifica fisica
</text>
</panel>
- <text name="physics_hint">
+ <text name="description">
Verrà creata una forma per lo scafo esterno del modello. Regola il livello di dettaglio della forma in base al fine desiderato del modello.
</text>
- <panel name="physics_content_panel">
- <text name="physics_performance_text">
- Prestazioni
- </text>
- <text name="physics_faster_rendering_text">
- Rendering più veloce
-Meno dettagli
-Peso prim più basso
- </text>
- <text name="physics_accuracy_text">
- Fedeltà
- </text>
- <text name="physics_slower_dendering_text">
- Rendering più lento
-Più dettagli
-Peso prim più elevato
- </text>
- <text name="physics_example_1">
- Esempi:
-Oggetti in movimento
-Oggetti in volo
-Veicoli
- </text>
- <text name="physics_example_2">
- Esempi:
-Piccoli oggetti statici
-Oggetti meno dettagliati
-Mobili semplici
- </text>
- <text name="physics_example_3">
- Esempi:
-Oggetti statici
-Oggetti dettagliati
-Edifici
- </text>
+ <panel name="content">
<button label="Ricalcola fisica" name="recalculate_physics_btn"/>
<button label="Ricalcolo in corso..." name="recalculating_physics_btn"/>
- <text name="physics_preview_label">
+ <text name="lod_label">
Anteprima fisica
</text>
<combo_box name="preview_lod_combo2" tool_tip="Livello di dettaglio per anteprima rendering">
- <combo_item name="preview_lod2_high">
+ <combo_item name="high">
Molti dettagli
</combo_item>
- <combo_item name="preview_lod2_medium">
+ <combo_item name="medium">
Dettagli medi
</combo_item>
- <combo_item name="preview_lod2_low">
+ <combo_item name="low">
Meno dettagli
</combo_item>
- <combo_item name="preview_lod2_lowest">
+ <combo_item name="lowest">
Dettaglio minimo
</combo_item>
</combo_box>
</panel>
</panel>
<panel name="review_panel">
- <panel name="review_header_panel">
- <text name="review_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Rivedi
</text>
</panel>
- <panel name="review_content_panel">
+ <panel name="content">
<text name="review_prim_equiv">
Impatto sul lotto o sulla regione: [EQUIV] prim equivalenti
</text>
@@ -193,8 +125,8 @@ Edifici
</panel>
</panel>
<panel name="upload_panel">
- <panel name="upload_header_panel">
- <text name="upload_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Caricamento completato
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/it/floater_moveview.xml b/indra/newview/skins/default/xui/it/floater_moveview.xml
index cdafdb0089..6e820a335c 100644
--- a/indra/newview/skins/default/xui/it/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/it/floater_moveview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="move_floater">
+<floater name="move_floater" title="SPOSTA">
<string name="walk_forward_tooltip">
Cammina in avanti (premi freccia su o W)
</string>
@@ -58,14 +58,14 @@
Vola
</string>
<panel name="panel_actions">
- <button label="" label_selected="" name="move up btn" tool_tip="Vola in alto (premi E)"/>
<button label="" label_selected="" name="turn left btn" tool_tip="Gira a sinistra (premi freccia sinistra o A)"/>
<joystick_slide name="move left btn" tool_tip="Cammina a sinistra (premi Maiusc + freccia sinistra o A)"/>
- <button label="" label_selected="" name="move down btn" tool_tip="Vola in basso (premi C)"/>
<button label="" label_selected="" name="turn right btn" tool_tip="Gira a destra (premi freccia destra o D)"/>
<joystick_slide name="move right btn" tool_tip="Cammina a destra (premi Maiusc + freccia destra o D)"/>
<joystick_turn name="forward btn" tool_tip="Cammina in avanti (premi freccia su o W)"/>
<joystick_turn name="backward btn" tool_tip="Cammina indietro (premi freccia giù o S)"/>
+ <button label="" label_selected="" name="move up btn" tool_tip="Vola in alto (premi E)"/>
+ <button label="" label_selected="" name="move down btn" tool_tip="Vola in basso (premi C)"/>
</panel>
<panel name="panel_modes">
<button label="" name="mode_walk_btn" tool_tip="Modalità cammina"/>
diff --git a/indra/newview/skins/default/xui/it/floater_my_appearance.xml b/indra/newview/skins/default/xui/it/floater_my_appearance.xml
new file mode 100644
index 0000000000..39ddd6186a
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_my_appearance.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_appearance" title="ASPETTO">
+ <panel label="Modifica aspetto" name="main_panel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_my_inventory.xml b/indra/newview/skins/default/xui/it/floater_my_inventory.xml
new file mode 100644
index 0000000000..0efd9f1c6d
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_my_inventory.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_inventory" title="INVENTARIO"/>
diff --git a/indra/newview/skins/default/xui/it/floater_object_weights.xml b/indra/newview/skins/default/xui/it/floater_object_weights.xml
new file mode 100644
index 0000000000..fdcb732dee
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_object_weights.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="object_weights" title="AVANZATE">
+ <floater.string name="nothing_selected" value="--"/>
+ <text name="selected_text" value="SELEZIONATI"/>
+ <text name="objects" value="--"/>
+ <text name="objects_label" value="Oggetti"/>
+ <text name="prims" value="--"/>
+ <text name="prims_label" value="Prim"/>
+ <text name="weights_of_selected_text" value="PESO ELEMENTI SELEZIONATI"/>
+ <text name="download" value="--"/>
+ <text name="download_label" value="Scarica"/>
+ <text name="physics" value="--"/>
+ <text name="physics_label" value="Fisica"/>
+ <text name="server" value="--"/>
+ <text name="server_label" value="Server"/>
+ <text name="display" value="--"/>
+ <text name="display_label" value="Visualizzazione"/>
+ <text name="land_impacts_text" value="IMPATTO TERRENO"/>
+ <text name="selected" value="--"/>
+ <text name="selected_label" value="Selezionati"/>
+ <text name="rezzed_on_land" value="--"/>
+ <text name="rezzed_on_land_label" value="Rezzati sul terreno"/>
+ <text name="remaining_capacity" value="--"/>
+ <text name="remaining_capacity_label" value="Capacità restante"/>
+ <text name="total_capacity" value="--"/>
+ <text name="total_capacity_label" value="Capacità totale"/>
+ <text name="help_SLURL" value="[secondlife:///app/help/object_weights Di cosa si tratta?...]"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/it/floater_outfit_save_as.xml
new file mode 100644
index 0000000000..55bb5adb1e
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_outfit_save_as.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="modal container" title="SALVA ABITO"/>
diff --git a/indra/newview/skins/default/xui/it/floater_people.xml b/indra/newview/skins/default/xui/it/floater_people.xml
new file mode 100644
index 0000000000..1acc3cbf19
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_people.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_people" title="PERSONE">
+ <panel_container name="main_panel">
+ <panel label="Profilo del gruppo" name="panel_group_info_sidetray"/>
+ <panel label="Residenti e oggetti bloccati" name="panel_block_list_sidetray"/>
+ </panel_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_picks.xml b/indra/newview/skins/default/xui/it/floater_picks.xml
new file mode 100644
index 0000000000..dfc539da66
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_picks.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_picks" title="Preferiti"/>
diff --git a/indra/newview/skins/default/xui/it/floater_places.xml b/indra/newview/skins/default/xui/it/floater_places.xml
new file mode 100644
index 0000000000..cd46cf8b59
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_places.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_places" title="LUOGHI">
+ <panel label="Luoghi" name="main_panel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_sound_devices.xml b/indra/newview/skins/default/xui/it/floater_sound_devices.xml
index df4b8f4878..9799b48d89 100644
--- a/indra/newview/skins/default/xui/it/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/it/floater_sound_devices.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_sound_devices" title="Dispositivi sonori">
+<floater name="floater_sound_devices" title="DISPOSITIVI AUDIO">
<text name="voice_label">
Chat vocale
</text>
diff --git a/indra/newview/skins/default/xui/it/floater_stats.xml b/indra/newview/skins/default/xui/it/floater_stats.xml
index aed2a03a21..ad6ef6b54b 100644
--- a/indra/newview/skins/default/xui/it/floater_stats.xml
+++ b/indra/newview/skins/default/xui/it/floater_stats.xml
@@ -10,8 +10,8 @@
</stat_view>
<stat_view label="Avanzata" name="advanced">
<stat_view label="Render" name="render">
- <stat_bar label="KTris disegnate" name="ktrisframe"/>
- <stat_bar label="KTris disegnate" name="ktrissec"/>
+ <stat_bar label="KTris disegnato per fotogramma" name="ktrisframe"/>
+ <stat_bar label="KTris disegnato per secondo" name="ktrissec"/>
<stat_bar label="Totale oggetti" name="objs"/>
<stat_bar label="Nuovi oggetti" name="newobjs"/>
</stat_view>
@@ -32,7 +32,7 @@
<stat_bar label="Layer" name="layerskbitstat"/>
<stat_bar label="Effettivi in ingresso" name="actualinkbitstat"/>
<stat_bar label="Effettivi in uscita" name="actualoutkbitstat"/>
- <stat_bar label="Operazioni pendenti VFS" name="vfspendingoperations"/>
+ <stat_bar label="Operazioni VFS in sospeso" name="vfspendingoperations"/>
</stat_view>
</stat_view>
<stat_view label="Simulatore" name="sim">
@@ -43,18 +43,6 @@
<stat_bar label="Oggetti pinzati" name="physicspinnedtasks"/>
<stat_bar label="Oggetti a basso LOD" name="physicslodtasks"/>
<stat_bar label="Memoria allocata" name="physicsmemoryallocated"/>
- <stat_bar label="Aggiornamenti agenti al sec" name="simagentups"/>
- <stat_bar label="Avatar principali" name="simmainagents"/>
- <stat_bar label="Avatar secondari" name="simchildagents"/>
- <stat_bar label="Oggetti" name="simobjects"/>
- <stat_bar label="Oggetti attivi" name="simactiveobjects"/>
- <stat_bar label="Script attivi" name="simactivescripts"/>
- <stat_bar label="Eventi di script" name="simscripteps"/>
- <stat_bar label="Pacchetti in ingresso" name="siminpps"/>
- <stat_bar label="Pacchetti in uscita" name="simoutpps"/>
- <stat_bar label="Download in attesa" name="simpendingdownloads"/>
- <stat_bar label="Caricamenti in attesa" name="simpendinguploads"/>
- <stat_bar label="Numero totale byte non confermati (Unacked)" name="simtotalunackedbytes"/>
</stat_view>
<stat_view label="Tempo (ms)" name="simperf">
<stat_bar label="Tempo totale Frame" name="simframemsec"/>
@@ -64,6 +52,14 @@
<stat_bar label="Tempo avatar" name="simagentmsec"/>
<stat_bar label="Tempo immagini" name="simimagesmsec"/>
<stat_bar label="Tempo script" name="simscriptmsec"/>
+ <stat_bar label="Tempo libero" name="simsparemsec"/>
+ <stat_view label="Dettagli tempo (ms)" name="timedetails">
+ <stat_bar label="Passaggio fisica" name="simsimphysicsstepmsec"/>
+ <stat_bar label="Aggiorna forme fisica" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="Altro fisica" name="simsimphysicsothermsec"/>
+ <stat_bar label="Tempo pausa" name="simsleepmsec"/>
+ <stat_bar label="IO pompa" name="simpumpiomsec"/>
+ </stat_view>
</stat_view>
</stat_view>
</container_view>
diff --git a/indra/newview/skins/default/xui/it/floater_tools.xml b/indra/newview/skins/default/xui/it/floater_tools.xml
index d3b1503742..0d981e2424 100644
--- a/indra/newview/skins/default/xui/it/floater_tools.xml
+++ b/indra/newview/skins/default/xui/it/floater_tools.xml
@@ -25,10 +25,10 @@
Clicca e trascina per selezionare il terreno
</floater.string>
<floater.string name="status_selectcount">
- [OBJ_COUNT] oggetti ( [PRIM_COUNT] prim [PE_STRING] ) selezionati
+ [OBJ_COUNT] oggetti selezionati, impatto terreno [LAND_IMPACT]
</floater.string>
- <floater.string name="status_selectprimequiv">
- , [SEL_WEIGHT] prim equivalenti
+ <floater.string name="status_remaining_capacity">
+ Capacità restante [LAND_CAPACITY].
</floater.string>
<button label="" label_selected="" name="button focus" tool_tip="Ingrandisci"/>
<button label="" label_selected="" name="button move" tool_tip="Sposta"/>
@@ -106,8 +106,8 @@
<text name="selection_empty">
Nessuna selezione.
</text>
- <text name="selection_weight">
- Peso fisica [PHYS_WEIGHT], costo rendering [DISP_WEIGHT].
+ <text name="remaining_capacity">
+ [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights Maggiori informazioni]
</text>
<tab_container name="Object Info Tabs">
<panel label="Generale" name="General">
@@ -326,7 +326,6 @@
Tipo di congiunzione
</text>
<combo_box name="sculpt type control">
- <combo_box.item label="(nessuna)" name="None"/>
<combo_box.item label="Sferica" name="Sphere"/>
<combo_box.item label="Toroidale" name="Torus"/>
<combo_box.item label="Piana" name="Plane"/>
diff --git a/indra/newview/skins/default/xui/it/floater_toybox.xml b/indra/newview/skins/default/xui/it/floater_toybox.xml
new file mode 100644
index 0000000000..c8d5f1ed7c
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/floater_toybox.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Toybox" title="PERSONALIZZA BARRE STRUMENTI">
+ <text name="toybox label 1">
+ Aggiungere o rimuovere pulsanti trascinandoli dentro o fuori dalle barre strumenti.
+ </text>
+ <text name="toybox label 2">
+ I pulsanti verranno visualizzati come mostrato o solo come icone, a seconda delle impostazioni della singola barra degli strumenti.
+ </text>
+ <button label="Ripristina predefiniti" label_selected="Ripristina predefiniti" name="btn_restore_defaults"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_voice_controls.xml b/indra/newview/skins/default/xui/it/floater_voice_controls.xml
index 0f0467757d..d0ac815b8b 100644
--- a/indra/newview/skins/default/xui/it/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/it/floater_voice_controls.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_voice_controls" title="Regolazione voce">
+<floater name="floater_voice_controls" title="CONTROLLI VOCE">
<string name="title_nearby">
- VOCE NEI DINTORNI
+ Voce vicina
</string>
<string name="title_group">
Chiamata di gruppo con [GROUP]
diff --git a/indra/newview/skins/default/xui/it/menu_hide_navbar.xml b/indra/newview/skins/default/xui/it/menu_hide_navbar.xml
index 2c2c6c4bc5..48f6691fd8 100644
--- a/indra/newview/skins/default/xui/it/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/it/menu_hide_navbar.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="hide_navbar_menu">
- <menu_item_check label="Mostra la barra di navigazione" name="ShowNavbarNavigationPanel"/>
+ <menu_item_check label="Mostra navigazione e barra dei Preferiti" name="ShowNavbarNavigationPanel"/>
<menu_item_check label="Mostra la barra dei Preferiti" name="ShowNavbarFavoritesPanel"/>
<menu_item_check label="Mostra mini barra del luogo" name="ShowMiniLocationPanel"/>
</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_login.xml b/indra/newview/skins/default/xui/it/menu_login.xml
index fe8bf703aa..834db974da 100644
--- a/indra/newview/skins/default/xui/it/menu_login.xml
+++ b/indra/newview/skins/default/xui/it/menu_login.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu_bar name="Login Menu">
<menu label="Io" name="File">
- <menu_item_call label="Preferenze" name="Preferences..."/>
+ <menu_item_call label="Preferenze..." name="Preferences..."/>
<menu_item_call label="Esci da [APP_NAME]" name="Quit"/>
</menu>
<menu label="Aiuto" name="Help">
diff --git a/indra/newview/skins/default/xui/it/menu_toolbars.xml b/indra/newview/skins/default/xui/it/menu_toolbars.xml
new file mode 100644
index 0000000000..784ecd262c
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_toolbars.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Toolbars Popup">
+ <menu_item_call label="Seleziona pulsanti..." name="Chose Buttons"/>
+ <menu_item_check label="Icone ed etichette" name="icons_with_text"/>
+ <menu_item_check label="Solo icone" name="icons_only"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_viewer.xml b/indra/newview/skins/default/xui/it/menu_viewer.xml
index 7e3b344117..815f6f58ed 100644
--- a/indra/newview/skins/default/xui/it/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/it/menu_viewer.xml
@@ -1,29 +1,30 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu_bar name="Main Menu">
<menu label="Io" name="Me">
- <menu_item_call label="Preferenze" name="Preferences"/>
- <menu_item_call label="Il mio Dashboard" name="Manage My Account">
+ <menu_item_call label="Dashboard..." name="Manage My Account">
<menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=it"/>
</menu_item_call>
- <menu_item_call label="Compra L$" name="Buy and Sell L$"/>
- <menu_item_call label="Il mio profilo" name="Profile"/>
- <menu_item_call label="Il mio aspetto" name="ChangeOutfit"/>
- <menu_item_check label="Il mio inventario" name="Inventory"/>
- <menu_item_check label="Il mio inventario" name="ShowSidetrayInventory"/>
- <menu_item_check label="Le mie gesture" name="Gestures"/>
- <menu_item_check label="La mia voce" name="ShowVoice"/>
+ <menu_item_call label="Profilo..." name="Profile"/>
+ <menu_item_call label="Aspetto fisico..." name="ChangeOutfit"/>
+ <menu_item_check label="Inventario..." name="Inventory"/>
+ <menu_item_check label="Gesture..." name="Gestures"/>
+ <menu_item_check label="Voce..." name="ShowVoice"/>
<menu label="Spostamento" name="Movement">
<menu_item_call label="Siedi" name="Sit Down Here"/>
<menu_item_check label="Vola" name="Fly"/>
<menu_item_check label="Corri sempre" name="Always Run"/>
<menu_item_call label="Ferma animazione" name="Stop Animating My Avatar"/>
</menu>
- <menu label="Il mio stato" name="Status">
+ <menu label="Stato" name="Status">
<menu_item_call label="Assente" name="Set Away"/>
<menu_item_call label="Non disponibile" name="Set Busy"/>
</menu>
<menu_item_call label="Richiedi diritti Admin" name="Request Admin Options"/>
<menu_item_call label="Lascia stato Admin" name="Leave Admin Options"/>
+ <menu_item_call label="Compra L$" name="Buy and Sell L$"/>
+ <menu_item_call label="Preferenze..." name="Preferences"/>
+ <menu_item_call label="Barre strumenti..." name="Toolbars"/>
+ <menu_item_call label="Nascondi tutti i controlli" name="Hide UI"/>
<menu_item_call label="Esci da [APP_NAME]" name="Quit"/>
</menu>
<menu label="Comunica" name="Communicate">
@@ -145,7 +146,6 @@
</menu>
<menu label="Aiuto" name="Help">
<menu_item_call label="Aiuto di [SECOND_LIFE]" name="Second Life Help"/>
- <menu_item_check label="Attiva suggerimenti" name="Enable Hints"/>
<menu_item_call label="Segnala abuso" name="Report Abuse"/>
<menu_item_call label="Segnala bug" name="Report Bug"/>
<menu_item_call label="Informazioni su [APP_NAME]" name="About Second Life"/>
@@ -161,7 +161,7 @@
<menu label="Strumenti di performance" name="Performance Tools">
<menu_item_call label="Misuratore lag" name="Lag Meter"/>
<menu_item_check label="Barra statistiche" name="Statistics Bar"/>
- <menu_item_check label="Mostra costo di rendering dell&apos;avatar" name="Avatar Rendering Cost"/>
+ <menu_item_check label="Mostra peso visualizzazione per avatar" name="Avatar Rendering Cost"/>
</menu>
<menu label="Evidenziazione e visibilità" name="Highlighting and Visibility">
<menu_item_check label="Effetto marcatore lampeggiante" name="Cheesy Beacon"/>
@@ -271,6 +271,7 @@
<menu_item_check label="Aggiorna tipo" name="Update Type"/>
<menu_item_check label="Info livello dettaglio" name="LOD Info"/>
<menu_item_check label="Crea coda" name="Build Queue"/>
+ <menu_item_check label="Complessità rendering" name="rendercomplexity"/>
<menu_item_check label="Scolpisci" name="Sculpt"/>
</menu>
<menu label="Rendering" name="Rendering">
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index ab9de43e6e..e19b84912a 100644
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -1915,6 +1915,12 @@ Trasferisci gli elementi nell&apos;inventario?
Confermi di voler uscire?
<usetemplate ignoretext="Conferma prima di uscire" name="okcancelignore" notext="Non uscire" yestext="Esci"/>
</notification>
+ <notification name="ConfirmRestoreToybox">
+ Passare ai pulsanti e alle barre strumenti predefinite?
+
+Questa azione non può essere ripristinata
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
<notification name="DeleteItems">
[QUESTION]
<usetemplate ignoretext="Conferma prima di cancellare gli elementi" name="okcancelignore" notext="Annulla" yestext="OK"/>
@@ -2997,10 +3003,6 @@ Clicca e trascina dovunque nel mondo per ruotare la visuale
<button name="cancel" text="Annulla"/>
</form>
</notification>
- <notification label="" name="ModeChange">
- Per cambiare la modalità è necessario uscire e riavviare.
- <usetemplate name="okcancelbuttons" notext="Non uscire" yestext="Esci"/>
- </notification>
<notification label="" name="NoClassifieds">
La creazione e la modifica degli annunci sono disponibili solo in modalità Avanzata. Uscire e cambiare la modalità? Sulla schermata di accesso si può selezionare la modalità.
<usetemplate name="okcancelbuttons" notext="Non uscire" yestext="Esci"/>
@@ -3045,6 +3047,10 @@ Clicca e trascina dovunque nel mondo per ruotare la visuale
La ricerca è disponibile solo in modalità Avanzata. Eseguire il logout e cambiare la modalità?
<usetemplate name="okcancelbuttons" notext="Non uscire" yestext="Esci"/>
</notification>
+ <notification label="" name="ConfirmHideUI">
+ Questa azione cancellerà tutte le voci di menu e i pulsanti. Per visualizzarli nuovamente cliccare ancora [SHORTCUT].
+ <usetemplate ignoretext="Conferma prima di nascondere l&apos;interfaccia" name="okcancelignore" notext="Annulla" yestext="OK"/>
+ </notification>
<global name="UnsupportedGLRequirements">
Non sembra che tu abbia i requisiti hardware adeguati per [APP_NAME]. [APP_NAME] richiede una scheda grafica OpenGL con supporto multitexture. Se ne hai una in dotazione, accertati di avere i driver, i service pack e i patch più recenti per la scheda grafica e per il sistema operativo.
diff --git a/indra/newview/skins/default/xui/it/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/it/panel_chiclet_bar.xml
new file mode 100644
index 0000000000..66bf3f140f
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/panel_chiclet_bar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="chiclet_bar">
+ <layout_stack name="toolbar_stack">
+ <layout_panel name="im_well_panel">
+ <chiclet_im_well name="im_well">
+ <button name="Unread IM messages" tool_tip="Conversazioni"/>
+ </chiclet_im_well>
+ </layout_panel>
+ <layout_panel name="notification_well_panel">
+ <chiclet_notification name="notification_well">
+ <button name="Unread" tool_tip="Notifiche"/>
+ </chiclet_notification>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_me.xml b/indra/newview/skins/default/xui/it/panel_me.xml
index 66601aa165..a134f6f1de 100644
--- a/indra/newview/skins/default/xui/it/panel_me.xml
+++ b/indra/newview/skins/default/xui/it/panel_me.xml
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Il mio profilo" name="panel_me">
- <tab_container name="tabs">
- <panel label="IL MIO PROFILO" name="panel_profile"/>
- <panel label="I MIEI PREFERITI" name="panel_picks"/>
- </tab_container>
+ <panel label="I MIEI PREFERITI" name="panel_picks"/>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_navigation_bar.xml b/indra/newview/skins/default/xui/it/panel_navigation_bar.xml
index 8e72167759..0299e2a532 100644
--- a/indra/newview/skins/default/xui/it/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/it/panel_navigation_bar.xml
@@ -1,18 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="navigation_bar">
- <panel name="navigation_panel">
- <pull_button name="back_btn" tool_tip="Torna al luogo precedente"/>
- <pull_button name="forward_btn" tool_tip="Procedi un luogo in avanti"/>
- <button name="home_btn" tool_tip="Teleport a casa"/>
- <location_input label="Posizione" name="location_combo"/>
- <search_combo_box label="Cerca" name="search_combo_box" tool_tip="Cerca">
- <combo_editor label="Cerca [SECOND_LIFE]" name="search_combo_editor"/>
- </search_combo_box>
- </panel>
- <favorites_bar name="favorite" tool_tip="Trascina qui i punti di riferimento per un accesso rapido ai tuoi posti preferiti in Second Life.">
- <label name="favorites_bar_label" tool_tip="Trascina qui i punti di riferimento per un accesso rapido ai tuoi posti preferiti in Second Life.">
- Barra dei Preferiti
- </label>
- <chevron_button name="&gt;&gt;" tool_tip="Mostra altri Preferiti"/>
- </favorites_bar>
+ <layout_stack name="nvp_stack">
+ <layout_panel name="navigation_layout_panel">
+ <panel name="navigation_panel">
+ <pull_button name="back_btn" tool_tip="Torna al luogo precedente"/>
+ <pull_button name="forward_btn" tool_tip="Procedi un luogo in avanti"/>
+ <button name="home_btn" tool_tip="Teleport a casa"/>
+ <location_input label="Posizione" name="location_combo"/>
+ </panel>
+ </layout_panel>
+ <layout_panel name="favorites_layout_panel">
+ <favorites_bar name="favorite" tool_tip="Trascina qui i punti di riferimento per un accesso rapido ai tuoi posti preferiti in Second Life.">
+ <label name="favorites_bar_label" tool_tip="Trascina qui i punti di riferimento per un accesso rapido ai tuoi posti preferiti in Second Life.">
+ Barra dei Preferiti
+ </label>
+ <more_button name="&gt;&gt;" tool_tip="Mostra altri Preferiti">
+ Altro ▼
+ </more_button>
+ </favorites_bar>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_nearby_chat.xml b/indra/newview/skins/default/xui/it/panel_nearby_chat.xml
new file mode 100644
index 0000000000..7afc3cd7e7
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/panel_nearby_chat.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="nearby_chat">
+ <check_box label="Traduci chat (tecnologia Google)" name="translate_chat_checkbox"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_general.xml b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
index ee52ee7cb1..4f52105404 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
@@ -13,7 +13,10 @@
<combo_box.item label="Italiano - Beta" name="Italian"/>
<combo_box.item label="Polski (Polacco) - Beta" name="Polish"/>
<combo_box.item label="Português (Portoghese) - Beta" name="Portugese"/>
+ <combo_box.item label="Русский (Russo) - Beta" name="Russian"/>
+ <combo_box.item label="Türkçe (Turco) - Beta" name="Turkish"/>
<combo_box.item label="日本語 (Giapponese) - Beta" name="(Japanese)"/>
+ <combo_box.item label="正體 (Cinese tradizionale) - Beta" name="Traditional Chinese"/>
</combo_box>
<text name="language_textbox2">
(Richiede il riavvio)
@@ -48,7 +51,6 @@
<check_box label="TItoli gruppo" name="show_all_title_checkbox1" tool_tip="Mostra titoli di gruppo, come Funzionario o Membro"/>
<check_box label="Evidenzia amici" name="show_friends" tool_tip="Evidenzia le etichette dei nomi dei tuoi amici"/>
<check_box label="Mostra nomi visualizzati" name="display_names_check" tool_tip="Seleziona per visualizzare i nomi in chat, IM, etichette, ecc."/>
- <check_box label="Attiva suggerimenti UI Viewer" name="viewer_hints_check"/>
<text name="inworld_typing_rg_label">
Premere i tasti lettera:
</text>
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_move.xml b/indra/newview/skins/default/xui/it/panel_preferences_move.xml
index 56d75bb3e3..8d172bb8bb 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_move.xml
@@ -7,18 +7,33 @@
</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 initial_value="vero" label="Barra laterale" name="appearance_sidebar_positioning" tool_tip="Utilizza il posizionamento automatico della fotocamera per la barra laterale"/>
+ <text name="keyboard_lbl">
+ Tastiera:
+ </text>
+ <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"/>
+ <text name="mouse_lbl">
+ Mouse:
+ </text>
<check_box label="Mostra in modalità Mouselook" name="first_person_avatar_visible"/>
<text name=" Mouse Sensitivity">
Sensibilità mouse visuale soggettiva:
</text>
<check_box label="Inverti" name="invert_mouse"/>
- <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="Doppio clic per:" name="double_click_chkbox"/>
- <radio_group name="double_click_action">
- <radio_item label="Teleport" name="radio_teleport"/>
- <radio_item label="Autopilota" name="radio_autopilot"/>
- </radio_group>
+ <text name="single_click_action_lbl">
+ Un solo clic sul terreno:
+ </text>
+ <combo_box name="single_click_action_combo">
+ <combo_box.item label="Nessuna azione" name="0"/>
+ <combo_box.item label="Passa al punto cliccato" name="1"/>
+ </combo_box>
+ <text name="double_click_action_lbl">
+ Doppio clic sul terreno:
+ </text>
+ <combo_box name="double_click_action_combo">
+ <combo_box.item label="Nessuna azione" name="0"/>
+ <combo_box.item label="Passa al punto cliccato" name="1"/>
+ <combo_box.item label="Teleport al punto cliccato" name="2"/>
+ </combo_box>
<button label="Altri dispositivi" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_status_bar.xml b/indra/newview/skins/default/xui/it/panel_status_bar.xml
index 0569107999..fadaa575ea 100644
--- a/indra/newview/skins/default/xui/it/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/it/panel_status_bar.xml
@@ -17,12 +17,9 @@
</panel.string>
<panel name="balance_bg">
<text name="balance" tool_tip="Clicca per aggiornare il tuo saldo in L$" value="L$ 20"/>
- <button label="ACQUISTA L$" name="buyL" tool_tip="Clicca per acquistare più L$"/>
+ <button label="Acquista L$" name="buyL" tool_tip="Clicca per acquistare più L$"/>
+ <button label="Acquisti" name="goShop" tool_tip="Apri Mercato Second Life"/>
</panel>
- <combo_box name="mode_combo" tool_tip="Seleziona la modalità. Seleziona Di base per esplorare facilmente e rapidamente e per la chat. Seleziona Avanzata per accedere ad altre funzionalità.">
- <combo_box.item label="Modalità di base" name="Basic"/>
- <combo_box.item label="Modalità Avanzata" name="Advanced"/>
- </combo_box>
<text name="TimeText" tool_tip="Orario attuale (Pacifico)">
24:00, ora del Pacifico
</text>
diff --git a/indra/newview/skins/default/xui/it/sidepanel_inventory.xml b/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
index 54fa6df407..5d6c7681f9 100644
--- a/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/it/sidepanel_inventory.xml
@@ -14,7 +14,7 @@
</string>
<button label="Oggetti ricevuti" name="inbox_btn"/>
<text name="inbox_fresh_new_count">
- [NUM] Nuovo
+ [NUM] nuovi
</text>
<panel tool_tip="Drag and drop items to your inventory to manage and use them">
<text name="inbox_inventory_placeholder">
diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml
index 9918934e12..e58ce0cd70 100644
--- a/indra/newview/skins/default/xui/it/strings.xml
+++ b/indra/newview/skins/default/xui/it/strings.xml
@@ -40,6 +40,9 @@
<string name="ProgressChangingResolution">
Modifica della risoluzione...
</string>
+ <string name="Fullbright">
+ Luminosità massima (vers. precedente)
+ </string>
<string name="LoginInProgress">
In connessione. [APP_NAME] può sembrare rallentata. Attendi.
</string>
@@ -74,7 +77,7 @@
Elaborazione risposta...
</string>
<string name="LoginInitializingWorld">
- Inizializzazione...
+ Inizializzazione mondo...
</string>
<string name="LoginDecodingImages">
Decodifica immagini...
@@ -1261,6 +1264,9 @@ Prova ad accedere nuovamente tra un minuto.
<string name="Marketplace Error Internal Import">
Errore: problema con questo elemento. Riprova più tardi.
</string>
+ <string name="Open landmarks">
+ Apri luoghi di riferimento
+ </string>
<string name="no_transfer" value="(nessun trasferimento)"/>
<string name="no_modify" value="(nessuna modifica)"/>
<string name="no_copy" value="(nessuna copia)"/>
@@ -4158,7 +4164,7 @@ Segnala abuso
<string name="Female - Wow">
Femmina - Accipicchia
</string>
- <string name="/bow1">
+ <string name="/bow">
/inchino
</string>
<string name="/clap">
@@ -4671,4 +4677,172 @@ Prova a racchiudere il percorso dell&apos;editor in doppie virgolette.
<string name="ParticleHiding">
Particelle nascoste
</string>
+ <string name="Command_AboutLand_Label">
+ Informazioni sul terreno
+ </string>
+ <string name="Command_Appearance_Label">
+ Aspetto fisico
+ </string>
+ <string name="Command_Avatar_Label">
+ Avatar
+ </string>
+ <string name="Command_Build_Label">
+ Costruisci
+ </string>
+ <string name="Command_Chat_Label">
+ Chat
+ </string>
+ <string name="Command_Compass_Label">
+ Bussola
+ </string>
+ <string name="Command_Destinations_Label">
+ Destinazioni
+ </string>
+ <string name="Command_Gestures_Label">
+ Gesture
+ </string>
+ <string name="Command_HowTo_Label">
+ Istruzioni
+ </string>
+ <string name="Command_Inventory_Label">
+ Inventario
+ </string>
+ <string name="Command_Map_Label">
+ Mappa
+ </string>
+ <string name="Command_Marketplace_Label">
+ Mercato
+ </string>
+ <string name="Command_MiniMap_Label">
+ Mini mappa
+ </string>
+ <string name="Command_Move_Label">
+ Movimento
+ </string>
+ <string name="Command_People_Label">
+ Persone
+ </string>
+ <string name="Command_Picks_Label">
+ Preferiti
+ </string>
+ <string name="Command_Places_Label">
+ Luoghi
+ </string>
+ <string name="Command_Preferences_Label">
+ Preferenze
+ </string>
+ <string name="Command_Profile_Label">
+ Profilo
+ </string>
+ <string name="Command_Search_Label">
+ Ricerca
+ </string>
+ <string name="Command_Snapshot_Label">
+ Istantanea
+ </string>
+ <string name="Command_Speak_Label">
+ Parla
+ </string>
+ <string name="Command_View_Label">
+ Visuale
+ </string>
+ <string name="Command_Voice_Label">
+ Voce vicina
+ </string>
+ <string name="Command_AboutLand_Tooltip">
+ Informazioni sul terreno che visiti
+ </string>
+ <string name="Command_Appearance_Tooltip">
+ Cambia l&apos;avatar
+ </string>
+ <string name="Command_Avatar_Tooltip">
+ Seleziona un avatar completo
+ </string>
+ <string name="Command_Build_Tooltip">
+ Costruzione oggetti e modifica terreno
+ </string>
+ <string name="Command_Chat_Tooltip">
+ Chatta con persone vicine usando il testo
+ </string>
+ <string name="Command_Compass_Tooltip">
+ Bussola
+ </string>
+ <string name="Command_Destinations_Tooltip">
+ Destinazioni interessanti
+ </string>
+ <string name="Command_Gestures_Tooltip">
+ Gesti per il tuo avatar
+ </string>
+ <string name="Command_HowTo_Tooltip">
+ Come eseguire le attività più comuni
+ </string>
+ <string name="Command_Inventory_Tooltip">
+ Visualizza e usa le tue cose
+ </string>
+ <string name="Command_Map_Tooltip">
+ Mappa del mondo
+ </string>
+ <string name="Command_Marketplace_Tooltip">
+ Vai allo shopping
+ </string>
+ <string name="Command_MiniMap_Tooltip">
+ Mostra le persone vicine
+ </string>
+ <string name="Command_Move_Tooltip">
+ Movimento avatar
+ </string>
+ <string name="Command_People_Tooltip">
+ Amici, gruppi e persone vicine
+ </string>
+ <string name="Command_Picks_Tooltip">
+ Luoghi da mostrare come preferiti nel profilo
+ </string>
+ <string name="Command_Places_Tooltip">
+ Luoghi salvati
+ </string>
+ <string name="Command_Preferences_Tooltip">
+ Preferenze
+ </string>
+ <string name="Command_Profile_Tooltip">
+ Modifica o visualizza il tuo profilo
+ </string>
+ <string name="Command_Search_Tooltip">
+ Trova luoghi, eventi, persone
+ </string>
+ <string name="Command_Snapshot_Tooltip">
+ Scatta una foto
+ </string>
+ <string name="Command_Speak_Tooltip">
+ Parla con persone vicine usando il microfono
+ </string>
+ <string name="Command_View_Tooltip">
+ Modifica angolo fotocamera
+ </string>
+ <string name="Command_Voice_Tooltip">
+ Persona vicine con funzioni voce
+ </string>
+ <string name="Retain%">
+ Mantieni%
+ </string>
+ <string name="Detail">
+ Dettagli
+ </string>
+ <string name="Better Detail">
+ Migliori dettagli
+ </string>
+ <string name="Surface">
+ Superficie
+ </string>
+ <string name="Solid">
+ Solido
+ </string>
+ <string name="Wrap">
+ Involucro
+ </string>
+ <string name="Preview">
+ Anteprima
+ </string>
+ <string name="Normal">
+ Normale
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml
index 47bb2455cf..c628ade43e 100644
--- a/indra/newview/skins/default/xui/ja/floater_about.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about.xml
@@ -10,7 +10,7 @@
<floater.string name="AboutPosition">
あなたの現在地は、[POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] の [REGION] です。位置は &lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; です。([HOSTIP])
[SERVER_VERSION]
-[[SERVER_RELEASE_NOTES_URL] [リリースノート]]
+[SERVER_RELEASE_NOTES_URL]
</floater.string>
<floater.string name="AboutSystem">
CPU: [CPU]
@@ -37,6 +37,9 @@ Qt Webkit バージョン: [QT_WEBKIT_VERSION]
<floater.string name="AboutTraffic">
パケットロス: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
</floater.string>
+ <floater.string name="ErrorFetchingServerReleaseNotesURL">
+ サーバーのリリースノートの URL を取得中にエラーが発生しました。
+ </floater.string>
<tab_container name="about_tab">
<panel label="情報" name="support_panel">
<button label="クリップボードにコピー" name="copy_btn"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml
index e870a8ace9..3c88c902f8 100644
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -214,19 +214,19 @@
オブジェクトボーナス: [BONUS]
</text>
<text name="Simulator primitive usage:">
- プリム使用状況:
+ リージョン(地域)の許容数:
</text>
<text name="objects_available">
[MAX] の内 [COUNT] ([AVAILABLE] 利用可能)
</text>
<text name="Primitives parcel supports:">
- 区画でサポートされるプリム数:
+ 区画の許容数:
</text>
<text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
- 区画上のプリム数:
+ 区画の負荷:
</text>
<text name="total_objects_text">
[COUNT]
diff --git a/indra/newview/skins/default/xui/ja/floater_avatar.xml b/indra/newview/skins/default/xui/ja/floater_avatar.xml
new file mode 100644
index 0000000000..c4455282d2
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_avatar.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Avatar" title="アバターピッカー"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_camera.xml b/indra/newview/skins/default/xui/ja/floater_camera.xml
index 71a20c8e18..5d3a048975 100644
--- a/indra/newview/skins/default/xui/ja/floater_camera.xml
+++ b/indra/newview/skins/default/xui/ja/floater_camera.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="camera_floater">
+<floater name="camera_floater" title="表示">
<floater.string name="rotate_tooltip">
フォーカスを中心にカメラを回転
</floater.string>
diff --git a/indra/newview/skins/default/xui/ja/floater_chat_bar.xml b/indra/newview/skins/default/xui/ja/floater_chat_bar.xml
new file mode 100644
index 0000000000..9735afb101
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_chat_bar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="chat_bar" title="近くのチャット">
+ <panel>
+ <line_editor label="ここをクリックしてチャットを開始します。" name="chat_box" tool_tip="Enter キーを押して話し、Ctrl + Enter キーで叫びます。"/>
+ <button name="show_nearby_chat" tool_tip="近くのチャットログを表示・非表示"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_destinations.xml b/indra/newview/skins/default/xui/ja/floater_destinations.xml
new file mode 100644
index 0000000000..b7f6ad4d4e
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_destinations.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Destinations" title="行き先"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_fast_timers.xml b/indra/newview/skins/default/xui/ja/floater_fast_timers.xml
new file mode 100644
index 0000000000..5f538ecdb0
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_fast_timers.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="fast_timers">
+ <string name="pause">
+ 一時停止
+ </string>
+ <string name="run">
+ 走る
+ </string>
+ <button label="一時停止" name="pause_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_how_to.xml b/indra/newview/skins/default/xui/ja/floater_how_to.xml
new file mode 100644
index 0000000000..4cebe27226
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_how_to.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_how_to" title="ハウツー"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_map.xml b/indra/newview/skins/default/xui/ja/floater_map.xml
index ff5a25fd7b..1122203446 100644
--- a/indra/newview/skins/default/xui/ja/floater_map.xml
+++ b/indra/newview/skins/default/xui/ja/floater_map.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Map" title="">
+<floater name="Map" title="ミニマップ">
<floater.string name="ToolTipMsg">
[REGION](ダブルクリックで地図を開く。Shift‐ドラッグで水平・垂直移動)
</floater.string>
diff --git a/indra/newview/skins/default/xui/ja/floater_model_preview.xml b/indra/newview/skins/default/xui/ja/floater_model_preview.xml
index 07667bb697..157c68a570 100644
--- a/indra/newview/skins/default/xui/ja/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_model_preview.xml
@@ -1,10 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Model Preview" title="モデルをアップロード">
- <string name="status_idle">
- 待機状態
- </string>
+<floater name="Model Preview" title="モデルウィザード">
+ <string name="status_idle"/>
<string name="status_parse_error">
- Dae に問題が見つかりました - 詳細についてはログをご参照ください。
+ エラー:Dae に問題が見つかりました - 詳細についてはログをご参照ください。
</string>
<string name="status_reading_file">
ローディング...
@@ -51,6 +49,9 @@
<string name="mesh_status_missing_lod">
必要な描画詳細度が見つかりません。
</string>
+ <string name="mesh_status_invalid_material_list">
+ LOD 付きの材料は参考モデルのサブセットではありません。
+ </string>
<string name="layer_all">
全て
</string>
@@ -63,188 +64,211 @@
<string name="tbd">
未定
</string>
- <text name="name_label">
- 名前:
- </text>
- <text name="lod_label">
- プレビュー:
- </text>
- <combo_box name="preview_lod_combo" tool_tip="プレビュー表示のLOD設定">
- <combo_item name="high">
- 描画詳細度:高
- </combo_item>
- <combo_item name="medium">
- 描画詳細度:中
- </combo_item>
- <combo_item name="low">
- 描画詳細度:低
- </combo_item>
- <combo_item name="lowest">
- 描画詳細度:最低
- </combo_item>
- </combo_box>
- <text name="warning_title">
- 警告:
- </text>
- <text name="warning_message">
- このモデルを Second Life サーバーにアップロードすることはできません。メッシュモデルのアップロード手順については [[VURL] こちらを参照してください]。
- </text>
- <text name="weights_text">
- ダウンロード:
-物理演算:
-サーバー負荷:
-
-プリム換算:
- </text>
- <text name="weights">
- [ST]
-[PH]
-[SIM]
-
-[EQ]
- </text>
- <tab_container name="import_tab">
- <panel label="描画詳細度" name="lod_panel">
- <text name="lod_table_header">
- 描画詳細度を選択:
- </text>
- <text name="high_label" value="高"/>
- <text name="high_triangles" value="0"/>
- <text name="high_vertices" value="0"/>
- <text name="medium_label" value="中"/>
- <text name="medium_triangles" value="0"/>
- <text name="medium_vertices" value="0"/>
- <text name="low_label" value="低"/>
- <text name="low_triangles" value="0"/>
- <text name="low_vertices" value="0"/>
- <text name="lowest_label" value="最低"/>
- <text name="lowest_triangles" value="0"/>
- <text name="lowest_vertices" value="0"/>
- <text name="lod_table_footer">
- 描画詳細度: [DETAIL]
- </text>
- <radio_group name="lod_file_or_limit" value="lod_from_file">
- <radio_item label="ファイルからロード" name="lod_from_file"/>
- <radio_item label="自動作成" name="lod_auto_generate"/>
- <radio_item label="なし" name="lod_none"/>
- </radio_group>
- <button label="参照" name="lod_browse"/>
- <combo_box name="lod_mode">
- <combo_item name="triangle_limit">
- 三角形の限度数
- </combo_item>
- <combo_item name="error_threshold">
- エラーしきい値
- </combo_item>
- </combo_box>
- <text name="build_operator_text">
- 制作演算子:
+ <panel name="left_panel">
+ <panel name="model_name_representation_panel">
+ <text name="name_label">
+ モデル名:
</text>
- <text name="queue_mode_text">
- キューモード:
+ <text name="model_category_label">
+ このモデルは...
</text>
- <combo_box name="build_operator">
- <combo_item name="edge_collapse">
- 稜の完全複合
- </combo_item>
- <combo_item name="half_edge_collapse">
- 稜の半複合
- </combo_item>
- </combo_box>
- <combo_box name="queue_mode">
- <combo_item name="greedy">
- グリーディ
- </combo_item>
- <combo_item name="lazy">
- レイジー
- </combo_item>
- <combo_item name="independent">
- インディペンデント
- </combo_item>
+ <combo_box name="model_category_combo">
+ <combo_item label="1つを選択..." name="Choose one"/>
+ <combo_item label="アバターの形" name="Avatar shape"/>
+ <combo_item label="アバターのアタッチメント" name="Avatar attachment"/>
+ <combo_item label="動くオブジェクト(車、動物)" name="Moving object (vehicle, animal)"/>
+ <combo_item label="制作用コンポーネント" name="Building Component"/>
+ <combo_item label="大型、不動、等" name="Large, non moving etc"/>
+ <combo_item label="やや小型、不動、等" name="Smaller, non-moving etc"/>
+ <combo_item label="いずれにも該当しない" name="Not really any of these"/>
</combo_box>
- <text name="border_mode_text">
- 境界線モード:
- </text>
- <text name="share_tolderance_text">
- 共有誤差:
- </text>
- <combo_box name="border_mode">
- <combo_item name="border_unlock">
- ロック解除
- </combo_item>
- <combo_item name="border_lock">
- ロック
- </combo_item>
- </combo_box>
- <text name="crease_label">
- 折れ角度:
- </text>
- <spinner name="crease_angle" value="75"/>
</panel>
- <panel label="物理効果" name="physics_panel">
- <panel name="physics geometry">
- <radio_group name="physics_load_radio" value="physics_load_from_file">
- <radio_item label="ファイル:" name="physics_load_from_file"/>
- <radio_item label="次の描画詳細度を使用:" name="physics_use_lod"/>
- </radio_group>
- <combo_box name="physics_lod_combo" tool_tip="実像に適用するLOD">
- <combo_item name="physics_lowest">
- 最低
- </combo_item>
- <combo_item name="physics_low">
- 低
- </combo_item>
- <combo_item name="physics_medium">
- 中
- </combo_item>
- <combo_item name="physics_high">
- 高
- </combo_item>
- </combo_box>
- <button label="参照" name="physics_browse"/>
+ <tab_container name="import_tab">
+ <panel label="描画詳細度" name="lod_panel" title="描画詳細度">
+ <text initial_value="データ源" name="source" value="データ源"/>
+ <text initial_value="三角形" name="triangles" value="三角形"/>
+ <text initial_value="頂点" name="vertices" value="頂点"/>
+ <text initial_value="高" name="high_label" value="高"/>
+ <button label="参照" name="lod_browse_high"/>
+ <text initial_value="0" name="high_triangles" value="0"/>
+ <text initial_value="0" name="high_vertices" value="0"/>
+ <text initial_value="中" name="medium_label" value="中"/>
+ <button label="参照" name="lod_browse_medium"/>
+ <text initial_value="0" name="medium_triangles" value="0"/>
+ <text initial_value="0" name="medium_vertices" value="0"/>
+ <text initial_value="低" name="low_label" value="低"/>
+ <button label="参照" name="lod_browse_low"/>
+ <text initial_value="0" name="low_triangles" value="0"/>
+ <text initial_value="0" name="low_vertices" value="0"/>
+ <text initial_value="最低" name="lowest_label" value="最低"/>
+ <button label="参照" name="lod_browse_lowest"/>
+ <text initial_value="0" name="lowest_triangles" value="0"/>
+ <text initial_value="0" name="lowest_vertices" value="0"/>
+ <check_box label="ノーマルの作成" name="gen_normals"/>
+ <text initial_value="折れ角度:" name="crease_label" value="折れ角度:"/>
+ <spinner name="crease_angle" value="75"/>
</panel>
- <panel name="physics analysis">
- <slider label="滑らかさ:" name="Smooth"/>
- <check_box label="穴を閉じる(スロー)" name="Close Holes (Slow)"/>
- <button label="分析" name="Decompose"/>
- <button label="取り消し" name="decompose_cancel"/>
+ <panel label="物理効果" name="physics_panel">
+ <panel name="physics geometry">
+ <text name="first_step_name">
+ 手順1:描画詳細度
+ </text>
+ <combo_box name="physics_lod_combo" tool_tip="実像に適用するLOD">
+ <combo_item name="choose_one">
+ 1つを選択...
+ </combo_item>
+ <combo_item name="physics_high">
+ 高
+ </combo_item>
+ <combo_item name="physics_medium">
+ 中
+ </combo_item>
+ <combo_item name="physics_low">
+ 低
+ </combo_item>
+ <combo_item name="physics_lowest">
+ 最低
+ </combo_item>
+ <combo_item name="load_from_file">
+ ファイルから
+ </combo_item>
+ </combo_box>
+ <button label="参照" name="physics_browse"/>
+ </panel>
+ <panel name="physics analysis">
+ <text name="method_label">
+ 手順2:分析
+ </text>
+ <text name="analysis_method_label">
+ 方法:
+ </text>
+ <text name="quality_label">
+ 品質:
+ </text>
+ <text name="smooth_method_label">
+ 滑らかさ:
+ </text>
+ <check_box label="穴を閉じる" name="Close Holes (Slow)"/>
+ <button label="分析" name="Decompose"/>
+ <button label="取り消し" name="decompose_cancel"/>
+ </panel>
+ <panel name="physics simplification">
+ <text name="second_step_label">
+ 手順3:単純化
+ </text>
+ <text name="simp_method_header">
+ 方法:
+ </text>
+ <text name="pass_method_header">
+ パス:
+ </text>
+ <text name="Detail Scale label">
+ 詳細度:
+ </text>
+ <text name="Retain%_label">
+ 維持率:
+ </text>
+ <combo_box name="Combine Quality" value="1"/>
+ <button label="単純化" name="Simplify"/>
+ <button label="取り消し" name="simplify_cancel"/>
+ </panel>
+ <panel name="physics info">
+ <text name="results_text">
+ 結果:
+ </text>
+ <text name="physics_triangles">
+ 三角形:[TRIANGLES],
+ </text>
+ <text name="physics_points">
+ 頂点:[POINTS],
+ </text>
+ <text name="physics_hulls">
+ 外殻構造:[HULLS]
+ </text>
+ </panel>
</panel>
- <panel name="physics simplification">
- <slider label="パス:" name="Combine Quality"/>
- <slider label="詳細度:" name="Detail Scale"/>
- <slider label="維持率:" name="Retain%"/>
- <button label="単純化" name="Simplify"/>
- <button label="取り消し" name="simplify_cancel"/>
- </panel>
- <panel name="physics info">
- <slider label="プレビュースプレッド:" name="physics_explode"/>
- <text name="physics_triangles">
- 三角形: [TRIANGLES]
+ <panel label="アップロードのオプション" name="modifiers_panel">
+ <text name="scale_label">
+ スケール(1=増減なし):
+ </text>
+ <spinner name="import_scale" value="1.0"/>
+ <text name="dimensions_label">
+ サイズ:
</text>
- <text name="physics_points">
- 頂点: [POINTS]
+ <text name="import_dimensions">
+ [X] X [Y] X [Z]
</text>
- <text name="physics_hulls">
- 外殻構造: [HULLS]
+ <check_box label="テクスチャを含む" name="upload_textures"/>
+ <text name="include_label">
+ アバターモデル専用:
</text>
+ <check_box label="スキンの重さを含む" name="upload_skin"/>
+ <check_box label="ジョイントポジションを含む" name="upload_joints"/>
+ <text name="pelvis_offset_label">
+ Z オフセット(アバターを上下調整):
+ </text>
+ <spinner name="pelvis_offset" value="0.0"/>
</panel>
- </panel>
- <panel label="修飾子" name="modifiers_panel">
- <spinner name="import_scale" value="1.0"/>
- <text name="import_dimensions">
- [X] x [Y] x [Z] m
+ </tab_container>
+ <panel name="weights_and_warning_panel">
+ <button label="ウェイトと料金の計算" name="calculate_btn" tool_tip="ウェイトと料金の計算"/>
+ <button label="取り消し" name="cancel_btn"/>
+ <button label="アップロード" name="ok_btn" tool_tip="シミュレーターにアップロード"/>
+ <button label="設定をクリアしてフォームをリセット" name="reset_btn"/>
+ <text name="upload_fee">
+ アップロード料金:L$ [FEE]
+ </text>
+ <text name="prim_weight">
+ 土地の負荷:[EQ]
+ </text>
+ <text name="download_weight">
+ ダウンロード:[ST]
+ </text>
+ <text name="physics_weight">
+ 物理演算:[PH]
+ </text>
+ <text name="server_weight">
+ サーバー負荷:[SIM]
+ </text>
+ <text name="warning_title">
+ ご注意:
+ </text>
+ <text name="warning_message">
+ メッシュモデルをアップロードする権利がありません。権利の取得方法については [[VURL]] こちらを参照してください。
+ </text>
+ <text name="status">
+ [STATUS]
</text>
- <check_box label="テクスチャ" name="upload_textures"/>
- <check_box label="スキンの重さ" name="upload_skin"/>
- <check_box label="ジョイントポジション" name="upload_joints"/>
- <spinner name="pelvis_offset" value="0.0"/>
</panel>
- </tab_container>
- <text name="upload_fee">
- アップロード料金:L$ [FEE]
+ </panel>
+ <text name="lod_label">
+ プレビュー:
</text>
- <button label="デフォルトに設定" name="reset_btn" tool_tip="デフォルトに設定"/>
- <button label="ウェイトと料金の計算" name="calculate_btn" tool_tip="ウェイトと料金の計算"/>
- <button label="アップロード" name="ok_btn" tool_tip="シミュレーターにアップロード"/>
- <button label="取り消し" name="cancel_btn"/>
+ <panel name="right_panel">
+ <combo_box name="preview_lod_combo" tool_tip="プレビュー表示の LOD 設定">
+ <combo_item name="high">
+ 高
+ </combo_item>
+ <combo_item name="medium">
+ 中
+ </combo_item>
+ <combo_item name="low">
+ 低
+ </combo_item>
+ <combo_item name="lowest">
+ 最低
+ </combo_item>
+ </combo_box>
+ <text name="label_display">
+ ディスプレイ...
+ </text>
+ <check_box label="稜" name="show_edges"/>
+ <check_box label="物理効果" name="show_physics"/>
+ <check_box label="テクスチャ" name="show_textures"/>
+ <check_box label="スキンの重さ" name="show_skin_weight"/>
+ <check_box label="ジョイント" name="show_joint_positions"/>
+ <text name="physics_explode_label">
+ プレビュースプレッド:
+ </text>
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_model_wizard.xml b/indra/newview/skins/default/xui/ja/floater_model_wizard.xml
index 2f336fcbde..915b37557f 100644
--- a/indra/newview/skins/default/xui/ja/floater_model_wizard.xml
+++ b/indra/newview/skins/default/xui/ja/floater_model_wizard.xml
@@ -6,26 +6,20 @@
<button label="2. 最適化" name="optimize_btn"/>
<button label="1. ファイルを選択" name="choose_file_btn"/>
<panel name="choose_file_panel">
- <panel name="choose_file_header_panel">
- <text name="choose_file_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
モデルファイルを選択
</text>
</panel>
- <panel name="choose_file_content_panel">
+ <panel name="content">
<text name="advanced_users_text">
上級ユーザーの場合:3D コンテンツの制作ツールを使い慣れた方は、高度なアップローダーもお試しください。
</text>
<button label="アドバンスモードに切り替える" name="switch_to_advanced"/>
- <text name="choose_model_file_label">
+ <text name="Cache location">
アップロードするモデルファイルの選択
</text>
<button label="参照" label_selected="参照" name="browse"/>
- <text name="support_collada_text">
- Second Life は COLLADA (.dae) ファイルをサポートします。
- </text>
- <text name="dimensions_label">
- サイズ(メートル):
- </text>
<text name="dimensions">
X Y Z
</text>
@@ -38,18 +32,15 @@
</panel>
</panel>
<panel name="optimize_panel">
- <panel name="optimize_header_panel">
- <text name="optimize_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
モデルを最適化
</text>
</panel>
- <text name="optimize_hint">
+ <text name="description">
パフォーマンスを重視してモデルを最適化しました。必要に応じて調整してください。
</text>
- <panel name="optimize_content_panel">
- <text name="generating_lod_label">
- 次の描画詳細度を作成
- </text>
+ <panel name="content">
<text name="high_detail_text">
次の描画詳細度を作成:高
</text>
@@ -64,123 +55,64 @@
</text>
</panel>
<panel name="content2">
- <text name="optimize_performance_text">
- パフォーマンス
- </text>
- <text name="optimize_faster_rendering_text">
- レンダリング速度の向上
-詳細度の低下
-プリム換算ウェイトの軽減
- </text>
- <text name="optimize_accuracy_text">
- 正確さ
- </text>
- <text name="optimize_slower_rendering_text">
- レンダリング速度の低下
-詳細化
-プリム換算ウェイトの増加
- </text>
- <text name="accuracy_slider_mark1">
- &apos;
- </text>
- <text name="accuracy_slider_mark2">
- &apos;
- </text>
- <text name="accuracy_slider_mark3">
- &apos;
- </text>
<button label="ジオメトリを再計算" name="recalculate_geometry_btn"/>
- <text name="geometry_preview_label">
+ <text name="lod_label">
ジオメトリのプレビュー
</text>
<combo_box name="preview_lod_combo" tool_tip="プレビュー表示の LOD 設定">
- <combo_item name="preview_lod_high">
+ <combo_item name="high">
高い詳細度
</combo_item>
- <combo_item name="preview_lod_medium">
+ <combo_item name="medium">
中の詳細度
</combo_item>
- <combo_item name="preview_lod_low">
+ <combo_item name="low">
低い詳細度
</combo_item>
- <combo_item name="preview_lod_lowest">
+ <combo_item name="lowest">
最低の詳細度
</combo_item>
</combo_box>
</panel>
</panel>
<panel name="physics_panel">
- <panel name="physics_header_panel">
- <text name="physics_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
物理作用の調整
</text>
</panel>
- <text name="physics_hint">
+ <text name="description">
モデルの外殻構造のシェイプは弊社が作成します。モデルの目的に応じてシェイプの詳細度を調整してください。
</text>
- <panel name="physics_content_panel">
- <text name="physics_performance_text">
- パフォーマンス
- </text>
- <text name="physics_faster_rendering_text">
- レンダリング速度の向上
-詳細度の低下
-プリム換算ウェイトの軽減
- </text>
- <text name="physics_accuracy_text">
- 正確
- </text>
- <text name="physics_slower_dendering_text">
- レンダリング速度の低下
-詳細化
-プリム換算ウェイトの増加
- </text>
- <text name="physics_example_1">
- 例:
-動くオブジェクト
-飛行オブジェクト
-車
- </text>
- <text name="physics_example_2">
- 例:
-小さな静止オブジェクト
-比較的詳細度の低いオブジェクト
-シンプルな家具
- </text>
- <text name="physics_example_3">
- 例:
-静止オブジェクト
-詳細なオブジェクト
-建物
- </text>
+ <panel name="content">
<button label="物理演算ウェイトを再計算" name="recalculate_physics_btn"/>
<button label="再計算中..." name="recalculating_physics_btn"/>
- <text name="physics_preview_label">
+ <text name="lod_label">
物理作用のプレビュー
</text>
<combo_box name="preview_lod_combo2" tool_tip="プレビュー表示の LOD 設定">
- <combo_item name="preview_lod2_high">
+ <combo_item name="high">
高い詳細度
</combo_item>
- <combo_item name="preview_lod2_medium">
+ <combo_item name="medium">
中の詳細度
</combo_item>
- <combo_item name="preview_lod2_low">
+ <combo_item name="low">
低い詳細度
</combo_item>
- <combo_item name="preview_lod2_lowest">
+ <combo_item name="lowest">
最低の詳細度
</combo_item>
</combo_box>
</panel>
</panel>
<panel name="review_panel">
- <panel name="review_header_panel">
- <text name="review_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
確認
</text>
</panel>
- <panel name="review_content_panel">
+ <panel name="content">
<text name="review_prim_equiv">
区画/リージョンへの負荷:[EQUIV] プリム換算値
</text>
@@ -193,8 +125,8 @@
</panel>
</panel>
<panel name="upload_panel">
- <panel name="upload_header_panel">
- <text name="upload_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
アップロード完了
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/floater_moveview.xml b/indra/newview/skins/default/xui/ja/floater_moveview.xml
index 57ab32f486..88c1905b8a 100644
--- a/indra/newview/skins/default/xui/ja/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/ja/floater_moveview.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="move_floater">
+<floater name="move_floater" title="移動">
<string name="walk_forward_tooltip">
前に進む(上矢印か W を押す)
</string>
@@ -58,14 +58,14 @@
飛ぶ
</string>
<panel name="panel_actions">
- <button label="" label_selected="" name="move up btn" tool_tip="上に移動(E を押す)"/>
<button label="" label_selected="" name="turn left btn" tool_tip="左を向く(左矢印か A を押す)"/>
<joystick_slide name="move left btn" tool_tip="左に歩く(Shift + 左矢印か A を押す)"/>
- <button label="" label_selected="" name="move down btn" tool_tip="下に移動(C を押す)"/>
<button label="" label_selected="" name="turn right btn" tool_tip="右を向く(右矢印か D を押す)"/>
<joystick_slide name="move right btn" tool_tip="右に歩く(Shift + 右矢印か D を押す)"/>
<joystick_turn name="forward btn" tool_tip="前に進む(上矢印か W を押す)"/>
<joystick_turn name="backward btn" tool_tip="後ろに歩く(下矢印か S を押す)"/>
+ <button label="" label_selected="" name="move up btn" tool_tip="上に移動(E を押す)"/>
+ <button label="" label_selected="" name="move down btn" tool_tip="下に移動(C を押す)"/>
</panel>
<panel name="panel_modes">
<button label="" name="mode_walk_btn" tool_tip="歩行モード"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_my_appearance.xml b/indra/newview/skins/default/xui/ja/floater_my_appearance.xml
new file mode 100644
index 0000000000..c9a0ecefd7
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_my_appearance.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_appearance" title="容姿">
+ <panel label="容姿の編集" name="main_panel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_my_inventory.xml b/indra/newview/skins/default/xui/ja/floater_my_inventory.xml
new file mode 100644
index 0000000000..c6a789b63b
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_my_inventory.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_inventory" title="持ち物"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_object_weights.xml b/indra/newview/skins/default/xui/ja/floater_object_weights.xml
new file mode 100644
index 0000000000..3bd9b6b069
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_object_weights.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="object_weights" title="詳しい設定">
+ <floater.string name="nothing_selected" value="--"/>
+ <text name="selected_text" value="選択済"/>
+ <text name="objects" value="--"/>
+ <text name="objects_label" value="オブジェクト"/>
+ <text name="prims" value="--"/>
+ <text name="prims_label" value="プリム"/>
+ <text name="weights_of_selected_text" value="選択済み項目のウエイト"/>
+ <text name="download" value="--"/>
+ <text name="download_label" value="ダウンロード"/>
+ <text name="physics" value="--"/>
+ <text name="physics_label" value="物理効果"/>
+ <text name="server" value="--"/>
+ <text name="server_label" value="サーバー"/>
+ <text name="display" value="--"/>
+ <text name="display_label" value="ディスプレイ"/>
+ <text name="land_impacts_text" value="土地の負荷"/>
+ <text name="selected" value="--"/>
+ <text name="selected_label" value="選択済"/>
+ <text name="rezzed_on_land" value="--"/>
+ <text name="rezzed_on_land_label" value="土地に Rez 済み"/>
+ <text name="remaining_capacity" value="--"/>
+ <text name="remaining_capacity_label" value="残りの許容数"/>
+ <text name="total_capacity" value="--"/>
+ <text name="total_capacity_label" value="許容合計"/>
+ <text name="help_SLURL" value="[secondlife:///app/help/object_weights オブジェクトのウェイトとは?]"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_people.xml b/indra/newview/skins/default/xui/ja/floater_people.xml
new file mode 100644
index 0000000000..08bee88103
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_people.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_people" title="人">
+ <panel_container name="main_panel">
+ <panel label="グループ情報" name="panel_group_info_sidetray"/>
+ <panel label="ブロックされた住人とオブジェクト" name="panel_block_list_sidetray"/>
+ </panel_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_picks.xml b/indra/newview/skins/default/xui/ja/floater_picks.xml
new file mode 100644
index 0000000000..359585eb86
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_picks.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_picks" title="ピック"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_places.xml b/indra/newview/skins/default/xui/ja/floater_places.xml
new file mode 100644
index 0000000000..0d167444db
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_places.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_places" title="場所">
+ <panel label="場所" name="main_panel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_stats.xml b/indra/newview/skins/default/xui/ja/floater_stats.xml
index 97927776c7..6a1f34cfd8 100644
--- a/indra/newview/skins/default/xui/ja/floater_stats.xml
+++ b/indra/newview/skins/default/xui/ja/floater_stats.xml
@@ -10,8 +10,8 @@
</stat_view>
<stat_view label="アドバンス" name="advanced">
<stat_view label="描画" name="render">
- <stat_bar label="KTris 描画" name="ktrisframe"/>
- <stat_bar label="KTris 描画" name="ktrissec"/>
+ <stat_bar label="フレームごとの KTris 描画" name="ktrisframe"/>
+ <stat_bar label="秒ごとの KTris 描画" name="ktrissec"/>
<stat_bar label="オブジェクト合計" name="objs"/>
<stat_bar label="新規オブジェクト" name="newobjs"/>
</stat_view>
@@ -64,6 +64,14 @@
<stat_bar label="エージェント時間" name="simagentmsec"/>
<stat_bar label="イメージ時間" name="simimagesmsec"/>
<stat_bar label="スクリプト時間" name="simscriptmsec"/>
+ <stat_bar label="余暇" name="simsparemsec"/>
+ <stat_view label="時間の詳細(ms)" name="timedetails">
+ <stat_bar label="物理効果の単位" name="simsimphysicsstepmsec"/>
+ <stat_bar label="物理形状を更新" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="他の物理効果" name="simsimphysicsothermsec"/>
+ <stat_bar label="スリープ時間" name="simsleepmsec"/>
+ <stat_bar label="ポンプ I/O" name="simpumpiomsec"/>
+ </stat_view>
</stat_view>
</stat_view>
</container_view>
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml
index a8b5febd54..8eddf55a44 100644
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -25,10 +25,10 @@
土地をクリックし、ドラッグして選択
</floater.string>
<floater.string name="status_selectcount">
- [OBJ_COUNT] 個のオブジェクト([PRIM_COUNT] 個のプリム [PE_STRING])が選択されています
+ 選択されているオブジェクトは [OBJ_COUNT] 個、土地の負荷は [LAND_IMPACT]
</floater.string>
- <floater.string name="status_selectprimequiv">
- , [SEL_WEIGHT] プリム換算値
+ <floater.string name="status_remaining_capacity">
+ 残りの許容数 [LAND_CAPACITY]。
</floater.string>
<button label="" label_selected="" name="button focus" tool_tip="フォーカス"/>
<button label="" label_selected="" name="button move" tool_tip="動かす"/>
@@ -105,8 +105,8 @@
<text name="selection_empty">
何も選択されていません。
</text>
- <text name="selection_weight">
- 物理演算ウェイト [PHYS_WEIGHT]、レンダリングコスト [DISP_WEIGHT]。
+ <text name="remaining_capacity">
+ [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights 詳細]
</text>
<tab_container name="Object Info Tabs">
<panel label="一般" name="General">
@@ -325,7 +325,6 @@
縫い目のタイプ
</text>
<combo_box name="sculpt type control">
- <combo_box.item label="(なし)" name="None"/>
<combo_box.item label="球体" name="Sphere"/>
<combo_box.item label="トーラス" name="Torus"/>
<combo_box.item label="平面" name="Plane"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_toybox.xml b/indra/newview/skins/default/xui/ja/floater_toybox.xml
new file mode 100644
index 0000000000..d7056f806c
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/floater_toybox.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Toybox" title="ツールバーをカスタマイズ">
+ <text name="toybox label 1">
+ ボタンをツールバーに追加または削除するにはボタンをドラッグします。
+ </text>
+ <text name="toybox label 2">
+ 各ツールバーの設定に応じて、ボタンは以下のように表示されたり、アイコンのみで表示されます。
+ </text>
+ <button label="デフォルト設定を復元" label_selected="デフォルト設定を復元" name="btn_restore_defaults"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml b/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml
index 3a1ae49700..2e633ae1b2 100644
--- a/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/ja/menu_hide_navbar.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="hide_navbar_menu">
- <menu_item_check label="ナビゲーションバーを表示" name="ShowNavbarNavigationPanel"/>
+ <menu_item_check label="ナビゲーションバーとお気に入りバーを表示" name="ShowNavbarNavigationPanel"/>
<menu_item_check label="お気に入りバーを表示" name="ShowNavbarFavoritesPanel"/>
<menu_item_check label="「場所」のミニフィールドを表示" name="ShowMiniLocationPanel"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_login.xml b/indra/newview/skins/default/xui/ja/menu_login.xml
index dca872e9b8..4c88f17f3d 100644
--- a/indra/newview/skins/default/xui/ja/menu_login.xml
+++ b/indra/newview/skins/default/xui/ja/menu_login.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu_bar name="Login Menu">
<menu label="ミー" name="File">
- <menu_item_call label="環境設定" name="Preferences..."/>
+ <menu_item_call label="環境設定..." name="Preferences..."/>
<menu_item_call label="[APP_NAME] を終了" name="Quit"/>
</menu>
<menu label="ヘルプ" name="Help">
diff --git a/indra/newview/skins/default/xui/ja/menu_toolbars.xml b/indra/newview/skins/default/xui/ja/menu_toolbars.xml
new file mode 100644
index 0000000000..e911ca4a13
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_toolbars.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Toolbars Popup">
+ <menu_item_call label="ボタンを選択..." name="Chose Buttons"/>
+ <menu_item_check label="アイコンとラベル" name="icons_with_text"/>
+ <menu_item_check label="アイコンのみ" name="icons_only"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index edce5c50fc..b9dbb81c0a 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -1,29 +1,30 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu_bar name="Main Menu">
<menu label="ミー" name="Me">
- <menu_item_call label="環境設定" name="Preferences"/>
- <menu_item_call label="マイアカウント" name="Manage My Account">
+ <menu_item_call label="マイアカウント..." name="Manage My Account">
<menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=ja"/>
</menu_item_call>
- <menu_item_call label="L$ の購入" name="Buy and Sell L$"/>
- <menu_item_call label="プロフィール" name="Profile"/>
- <menu_item_call label="容姿" name="ChangeOutfit"/>
- <menu_item_check label="持ち物" name="Inventory"/>
- <menu_item_check label="持ち物" name="ShowSidetrayInventory"/>
- <menu_item_check label="ジェスチャー" name="Gestures"/>
- <menu_item_check label="マイボイス" name="ShowVoice"/>
+ <menu_item_call label="プロフィール..." name="Profile"/>
+ <menu_item_call label="容姿..." name="ChangeOutfit"/>
+ <menu_item_check label="持ち物..." name="Inventory"/>
+ <menu_item_check label="ジェスチャー..." name="Gestures"/>
+ <menu_item_check label="ボイス..." name="ShowVoice"/>
<menu label="ムーブメント" name="Movement">
<menu_item_call label="座る" name="Sit Down Here"/>
<menu_item_check label="飛ぶ" name="Fly"/>
<menu_item_check label="常に走る" name="Always Run"/>
<menu_item_call label="私のアニメーションを停止する" name="Stop Animating My Avatar"/>
</menu>
- <menu label="ログイン状態" name="Status">
+ <menu label="ログイン" name="Status">
<menu_item_call label="一時退席中" name="Set Away"/>
<menu_item_call label="取り込み中" name="Set Busy"/>
</menu>
<menu_item_call label="管理者権限のリクエスト" name="Request Admin Options"/>
<menu_item_call label="管理者ステータス解除" name="Leave Admin Options"/>
+ <menu_item_call label="L$ の購入" name="Buy and Sell L$"/>
+ <menu_item_call label="環境設定..." name="Preferences"/>
+ <menu_item_call label="ツールバー..." name="Toolbars"/>
+ <menu_item_call label="全てのコントロールを非表示にする" name="Hide UI"/>
<menu_item_call label="[APP_NAME] を終了" name="Quit"/>
</menu>
<menu label="コミュニケーション" name="Communicate">
@@ -145,7 +146,6 @@
</menu>
<menu label="ヘルプ" name="Help">
<menu_item_call label="[SECOND_LIFE] ヘルプ" name="Second Life Help"/>
- <menu_item_check label="ヒントを有効にする" name="Enable Hints"/>
<menu_item_call label="嫌がらせを報告する" name="Report Abuse"/>
<menu_item_call label="バグを報告する" name="Report Bug"/>
<menu_item_call label="[APP_NAME] について" name="About Second Life"/>
@@ -161,7 +161,7 @@
<menu label="パフォーマンスツール" name="Performance Tools">
<menu_item_call label="ラグ計測器" name="Lag Meter"/>
<menu_item_check label="統計バー" name="Statistics Bar"/>
- <menu_item_check label="アバターのレンダリングコストを表示する" name="Avatar Rendering Cost"/>
+ <menu_item_check label="アバターの描画ウェイトを表示" name="Avatar Rendering Cost"/>
</menu>
<menu label="ハイライトと目に見えるもの" name="Highlighting and Visibility">
<menu_item_check label="チージービーコン" name="Cheesy Beacon"/>
@@ -289,6 +289,7 @@
<menu_item_check label="光" name="Lights"/>
<menu_item_check label="骨組みの衝突判定" name="Collision Skeleton"/>
<menu_item_check label="レイキャスト" name="Raycast"/>
+ <menu_item_check label="描画の詳細度" name="rendercomplexity"/>
<menu_item_check label="スカルプト" name="Sculpt"/>
</menu>
<menu label="レンダリング" name="Rendering">
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index c138aeb383..85f09b4500 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml