summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.hgignore1
-rw-r--r--.hgtags1
-rwxr-xr-x[-rw-r--r--]BuildParams6
-rw-r--r--doc/contributions.txt3
-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/llversionviewer.h2
-rwxr-xr-x[-rw-r--r--]indra/llcrashlogger/llcrashlogger.cpp7
-rwxr-xr-x[-rw-r--r--]indra/llcrashlogger/llcrashlogger.h3
-rw-r--r--indra/llmath/lloctree.h2
-rwxr-xr-x[-rw-r--r--]indra/llmessage/llcurl.h0
-rw-r--r--indra/llui/lldockablefloater.cpp15
-rw-r--r--indra/llui/lldockablefloater.h4
-rw-r--r--indra/llui/lldockcontrol.cpp62
-rw-r--r--indra/llui/lldockcontrol.h4
-rw-r--r--indra/llui/llfloater.cpp4
-rw-r--r--indra/llui/llkeywords.cpp81
-rw-r--r--indra/llui/llkeywords.h33
-rw-r--r--indra/llui/lltoolbar.cpp122
-rw-r--r--indra/llui/lltoolbar.h23
-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/keywords.ini4
-rwxr-xr-x[-rw-r--r--]indra/newview/app_settings/settings.xml37
-rw-r--r--indra/newview/app_settings/settings_per_account.xml11
-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/darwin/dmg-cleanup.applescript2
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/darwin/fix_application_icon_position.sh2
-rw-r--r--indra/newview/installers/darwin/release-dmg/_DS_Storebin12292 -> 12292 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/installers/windows/installer_template.nsi173
-rw-r--r--indra/newview/installers/windows/lang_ru.nsibin7542 -> 7598 bytes
-rw-r--r--indra/newview/installers/windows/lang_tr.nsibin7542 -> 7722 bytes
-rwxr-xr-x[-rw-r--r--]indra/newview/llappviewer.cpp39
-rw-r--r--indra/newview/llfavoritesbar.cpp129
-rw-r--r--indra/newview/llfavoritesbar.h2
-rw-r--r--indra/newview/llfloaterabout.cpp3
-rwxr-xr-xindra/newview/llfloaterpreference.cpp9
-rw-r--r--indra/newview/llfloaterpreference.h1
-rw-r--r--indra/newview/llfloatertoybox.cpp30
-rw-r--r--indra/newview/llfloatertoybox.h2
-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/llimfloatercontainer.cpp3
-rw-r--r--indra/newview/llimfloatercontainer.h2
-rw-r--r--indra/newview/llimview.cpp37
-rw-r--r--indra/newview/llimview.h9
-rw-r--r--indra/newview/llinventorymodel.cpp50
-rw-r--r--indra/newview/llinventorymodel.h11
-rw-r--r--indra/newview/llnearbychatbar.cpp18
-rw-r--r--indra/newview/llnearbychatbar.h1
-rw-r--r--indra/newview/llnearbychathandler.cpp3
-rw-r--r--indra/newview/llpanelmaininventory.cpp2
-rw-r--r--indra/newview/llsyswellwindow.cpp7
-rw-r--r--indra/newview/lltoolbarview.cpp362
-rw-r--r--indra/newview/lltoolbarview.h39
-rw-r--r--indra/newview/lltransientfloatermgr.cpp43
-rw-r--r--indra/newview/lltransientfloatermgr.h9
-rw-r--r--indra/newview/lltranslate.cpp357
-rw-r--r--indra/newview/lltranslate.h300
-rw-r--r--indra/newview/llviewerfloaterreg.cpp2
-rw-r--r--indra/newview/llviewermenu.cpp13
-rw-r--r--indra/newview/llviewermessage.cpp13
-rwxr-xr-x[-rw-r--r--]indra/newview/llviewerobject.cpp0
-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/textures/windows/Flyout_Left.pngbin0 -> 271 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/Flyout_Right.pngbin0 -> 280 bytes
-rw-r--r--indra/newview/skins/default/xui/da/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/de/inspect_group.xml2
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_chat_bar.xml97
-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_outgoing_call.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_toybox.xml2
-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.xml2
-rw-r--r--indra/newview/skins/default/xui/en/inspect_remote_object.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_toolbars.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml21
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_chat.xml127
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_status_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/en/panel_topinfo_bar.xml2
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml12
-rw-r--r--indra/newview/skins/default/xui/en/widgets/toolbar.xml4
-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/fr/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_general.xml2
-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/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_about.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/floater_about_land.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/floater_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_camera.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_chat_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml95
-rw-r--r--indra/newview/skins/default/xui/ru/floater_destinations.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_fast_timers.xml10
-rw-r--r--indra/newview/skins/default/xui/ru/floater_how_to.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_joystick.xml24
-rw-r--r--indra/newview/skins/default/xui/ru/floater_map.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/floater_model_preview.xml374
-rw-r--r--indra/newview/skins/default/xui/ru/floater_model_wizard.xml128
-rw-r--r--indra/newview/skins/default/xui/ru/floater_moveview.xml2
-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_object_weights.xml28
-rw-r--r--indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_people.xml7
-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_preferences.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/floater_sound_devices.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/floater_stats.xml14
-rw-r--r--indra/newview/skins/default/xui/ru/floater_tools.xml11
-rw-r--r--indra/newview/skins/default/xui/ru/floater_toybox.xml10
-rw-r--r--indra/newview/skins/default/xui/ru/floater_voice_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/menu_hide_navbar.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/menu_login.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/menu_toolbars.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/menu_viewer.xml27
-rw-r--r--indra/newview/skins/default/xui/ru/notifications.xml14
-rw-r--r--indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml15
-rw-r--r--indra/newview/skins/default/xui/ru/panel_me.xml5
-rw-r--r--indra/newview/skins/default/xui/ru/panel_navigation_bar.xml35
-rw-r--r--indra/newview/skins/default/xui/ru/panel_nearby_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_chat.xml24
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_colors.xml4
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_general.xml30
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml12
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_move.xml35
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_setup.xml6
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_sound.xml10
-rw-r--r--indra/newview/skins/default/xui/ru/panel_sound_devices.xml2
-rw-r--r--indra/newview/skins/default/xui/ru/panel_status_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/ru/strings.xml177
-rw-r--r--indra/newview/skins/default/xui/tr/floater_about.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/floater_about_land.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/floater_avatar.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_camera.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/floater_chat_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/floater_day_cycle_options.xml95
-rw-r--r--indra/newview/skins/default/xui/tr/floater_destinations.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml20
-rw-r--r--indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/floater_fast_timers.xml10
-rw-r--r--indra/newview/skins/default/xui/tr/floater_how_to.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_map.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/floater_model_preview.xml376
-rw-r--r--indra/newview/skins/default/xui/tr/floater_model_wizard.xml122
-rw-r--r--indra/newview/skins/default/xui/tr/floater_moveview.xml2
-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_object_weights.xml28
-rw-r--r--indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_people.xml7
-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_preview_texture.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_sound_devices.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/floater_stats.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/floater_tools.xml13
-rw-r--r--indra/newview/skins/default/xui/tr/floater_toybox.xml10
-rw-r--r--indra/newview/skins/default/xui/tr/floater_voice_controls.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/floater_windlight_options.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_bottomtray.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_gesture_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_hide_navbar.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/menu_landmark.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/menu_login.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_picks_plus.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_place.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_slurl.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/menu_toolbars.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/menu_viewer.xml29
-rw-r--r--indra/newview/skins/default/xui/tr/notifications.xml60
-rw-r--r--indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml15
-rw-r--r--indra/newview/skins/default/xui/tr/panel_edit_pick.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_landmarks.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_me.xml5
-rw-r--r--indra/newview/skins/default/xui/tr/panel_navigation_bar.xml35
-rw-r--r--indra/newview/skins/default/xui/tr/panel_nearby_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_outfit_edit.xml4
-rw-r--r--indra/newview/skins/default/xui/tr/panel_outfits_list.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_people.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_picks.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_chat.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_general.xml6
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_move.xml31
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_profile_view.xml2
-rw-r--r--indra/newview/skins/default/xui/tr/panel_status_bar.xml7
-rw-r--r--indra/newview/skins/default/xui/tr/role_actions.xml8
-rw-r--r--indra/newview/skins/default/xui/tr/sidepanel_appearance.xml12
-rw-r--r--indra/newview/skins/default/xui/tr/sidepanel_inventory.xml14
-rw-r--r--indra/newview/skins/default/xui/tr/strings.xml203
-rw-r--r--indra/newview/skins/default/xui/zh/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml95
-rw-r--r--indra/newview/skins/default/xui/zh/panel_preferences_general.xml18
-rw-r--r--indra/newview/tests/lltranslate_test.cpp345
-rwxr-xr-x[-rw-r--r--]indra/newview/viewer_manifest.py13
-rwxr-xr-x[-rw-r--r--]indra/viewer_components/updater/scripts/darwin/update_install2
-rwxr-xr-x[-rw-r--r--]indra/viewer_components/updater/scripts/linux/update_install2
-rwxr-xr-x[-rw-r--r--]indra/win_crash_logger/llcrashloggerwindows.cpp1
287 files changed, 5393 insertions, 2636 deletions
diff --git a/.hgignore b/.hgignore
index e3ad4fe7b2..403b73df6d 100644
--- a/.hgignore
+++ b/.hgignore
@@ -66,3 +66,4 @@ glob:indra/newview/search_history.txt
glob:indra/newview/filters.xml
glob:indra/newview/avatar_icons_cache.txt
glob:indra/newview/avatar_lad.log
+glob:*.diff
diff --git a/.hgtags b/.hgtags
index cf78c1ee49..a9ff58bb47 100644
--- a/.hgtags
+++ b/.hgtags
@@ -213,5 +213,6 @@ e440cd1dfbd128d7d5467019e497f7f803640ad6 3.2.0-beta1
9bcc2b7176634254e501e3fb4c5b56c1f637852e 3.2.0-beta2
2a13d30ee50ccfed50268238e36bb90d738ccc9e DRTVWR-98_3.2.0-beta3
2a13d30ee50ccfed50268238e36bb90d738ccc9e 3.2.0-beta3
+c4911ec8cd81e676dfd2af438b3e065407a94a7a 3.2.1-start
3150219d229d628f0c15e58e8a51511cbd97e58d DRTVWR-94_3.2.0-release
3150219d229d628f0c15e58e8a51511cbd97e58d 3.2.0-release
diff --git a/BuildParams b/BuildParams
index 1c76b6f935..5068edb21f 100644..100755
--- a/BuildParams
+++ b/BuildParams
@@ -190,4 +190,10 @@ simon_viewer-dev-private.public_build = false
simon_viewer-dev-private.email_status_this_is_os = false
+# ========================================
+# Vir
+# ========================================
+vir-project-1.viewer_channel = "Second Life Release"
+vir-project-1.login_channel = "Second Life Release"
+
# eof
diff --git a/doc/contributions.txt b/doc/contributions.txt
index 988410701b..d719f64baf 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -480,6 +480,7 @@ Ima Mechanique
OPEN-50
OPEN-61
OPEN-76
+ STORM-959
STORM-1175
Imnotgoing Sideways
Inma Rau
@@ -654,6 +655,8 @@ Lilly Zenovka
Lizzy Macarthur
Luban Yiyuan
Luc Starsider
+Luminous Luminos
+ STORM-959
Lunita Savira
Maccus McCullough
maciek marksman
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/llversionviewer.h b/indra/llcommon/llversionviewer.h
index 1dc22519d7..fc1c1449da 100644
--- a/indra/llcommon/llversionviewer.h
+++ b/indra/llcommon/llversionviewer.h
@@ -29,7 +29,7 @@
const S32 LL_VERSION_MAJOR = 3;
const S32 LL_VERSION_MINOR = 2;
-const S32 LL_VERSION_PATCH = 0;
+const S32 LL_VERSION_PATCH = 2;
const S32 LL_VERSION_BUILD = 0;
const char * const LL_CHANNEL = "Second Life Developer";
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/llmath/lloctree.h b/indra/llmath/lloctree.h
index e5ca47da69..3c1ae45d68 100644
--- a/indra/llmath/lloctree.h
+++ b/indra/llmath/lloctree.h
@@ -681,7 +681,7 @@ public:
if (lt != 0x7)
{
- OCT_ERRS << "!!! ELEMENT EXCEEDS RANGE OF SPATIAL PARTITION !!!" << llendl;
+ //OCT_ERRS << "!!! ELEMENT EXCEEDS RANGE OF SPATIAL PARTITION !!!" << llendl;
return false;
}
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/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp
index aea58be12a..0fcd937361 100644
--- a/indra/llui/lldockablefloater.cpp
+++ b/indra/llui/lldockablefloater.cpp
@@ -239,8 +239,21 @@ void LLDockableFloater::setDockControl(LLDockControl* dockControl)
setDocked(isDocked());
}
-const LLUIImagePtr& LLDockableFloater::getDockTongue()
+const LLUIImagePtr& LLDockableFloater::getDockTongue(LLDockControl::DocAt dock_side)
{
+ switch(dock_side)
+ {
+ case LLDockControl::LEFT:
+ mDockTongue = LLUI::getUIImage("windows/Flyout_Left.png");
+ break;
+ case LLDockControl::RIGHT:
+ mDockTongue = LLUI::getUIImage("windows/Flyout_Right.png");
+ break;
+ default:
+ mDockTongue = LLUI::getUIImage("windows/Flyout_Pointer.png");
+ break;
+ }
+
return mDockTongue;
}
diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h
index 8deb6c1159..89c9852f4a 100644
--- a/indra/llui/lldockablefloater.h
+++ b/indra/llui/lldockablefloater.h
@@ -113,6 +113,8 @@ public:
bool getUniqueDocking() { return mUniqueDocking; }
bool getUseTongue() { return mUseTongue; }
+
+ void setUseTongue(bool use_tongue) { mUseTongue = use_tongue;}
private:
/**
* Provides unique of dockable floater.
@@ -122,7 +124,7 @@ private:
protected:
void setDockControl(LLDockControl* dockControl);
- const LLUIImagePtr& getDockTongue();
+ const LLUIImagePtr& getDockTongue(LLDockControl::DocAt dock_side = LLDockControl::TOP);
// Checks if docking should be forced.
// It may be useful e.g. if floater created in mouselook mode (see EXT-5609)
diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp
index 6397bbd0de..af39e41fa6 100644
--- a/indra/llui/lldockcontrol.cpp
+++ b/indra/llui/lldockcontrol.cpp
@@ -100,12 +100,16 @@ void LLDockControl::repositionDockable()
if (!mDockWidget) return;
LLRect dockRect = mDockWidget->calcScreenRect();
LLRect rootRect;
+ LLRect floater_rect = mDockableFloater->calcScreenRect();
mGetAllowedRectCallback(rootRect);
- // recalculate dockable position if dock position changed, dock visibility changed,
- // root view rect changed or recalculation is forced
- if (mPrevDockRect != dockRect || mDockWidgetVisible != isDockVisible()
- || mRootRect != rootRect || mRecalculateDocablePosition)
+ // recalculate dockable position if:
+ if (mPrevDockRect != dockRect //dock position changed
+ || mDockWidgetVisible != isDockVisible() //dock visibility changed
+ || mRootRect != rootRect //root view rect changed
+ || mFloaterRect != floater_rect //floater rect changed
+ || mRecalculateDockablePosition //recalculation is forced
+ )
{
// undock dockable and off() if dock not visible
if (!isDockVisible())
@@ -136,7 +140,8 @@ void LLDockControl::repositionDockable()
mPrevDockRect = dockRect;
mRootRect = rootRect;
- mRecalculateDocablePosition = false;
+ mFloaterRect = floater_rect;
+ mRecalculateDockablePosition = false;
mDockWidgetVisible = isDockVisible();
}
}
@@ -203,21 +208,33 @@ void LLDockControl::moveDockable()
switch (mDockAt)
{
case LEFT:
- x = dockRect.mLeft;
- y = dockRect.mTop + mDockTongue->getHeight() + dockableRect.getHeight();
- // check is dockable inside root view rect
- if (x < rootRect.mLeft)
+
+ x = dockRect.mLeft - dockableRect.getWidth();
+ y = dockRect.getCenterY() + dockableRect.getHeight() / 2;
+
+ if (use_tongue)
{
- x = rootRect.mLeft;
+ x -= mDockTongue->getWidth();
}
- if (x + dockableRect.getWidth() > rootRect.mRight)
+
+ mDockTongueX = dockableRect.mRight;
+ mDockTongueY = dockableRect.getCenterY() - mDockTongue->getHeight() / 2;
+
+ break;
+
+ case RIGHT:
+
+ x = dockRect.mRight;
+ y = dockRect.getCenterY() + dockableRect.getHeight() / 2;
+
+ if (use_tongue)
{
- x = rootRect.mRight - dockableRect.getWidth();
+ x += mDockTongue->getWidth();
}
-
- mDockTongueX = x + dockableRect.getWidth()/2 - mDockTongue->getWidth() / 2;
-
- mDockTongueY = dockRect.mTop;
+
+ mDockTongueX = dockRect.mRight;
+ mDockTongueY = dockableRect.getCenterY() - mDockTongue->getHeight() / 2;
+
break;
case TOP:
@@ -315,13 +332,12 @@ void LLDockControl::moveDockable()
dockableRect.setLeftTopAndSize(x, y, dockableRect.getWidth(),
dockableRect.getHeight());
}
+
LLRect localDocableParentRect;
- mDockableFloater->getParent()->screenRectToLocal(dockableRect,
- &localDocableParentRect);
- mDockableFloater->setRect(localDocableParentRect);
- mDockableFloater->screenPointToLocal(mDockTongueX, mDockTongueY,
- &mDockTongueX, &mDockTongueY);
+ mDockableFloater->getParent()->screenRectToLocal(dockableRect, &localDocableParentRect);
+ mDockableFloater->setRect(localDocableParentRect);
+ mDockableFloater->screenPointToLocal(mDockTongueX, mDockTongueY, &mDockTongueX, &mDockTongueY);
}
@@ -330,7 +346,7 @@ void LLDockControl::on()
if (isDockVisible())
{
mEnabled = true;
- mRecalculateDocablePosition = true;
+ mRecalculateDockablePosition = true;
}
}
@@ -341,7 +357,7 @@ void LLDockControl::off()
void LLDockControl::forceRecalculatePosition()
{
- mRecalculateDocablePosition = true;
+ mRecalculateDockablePosition = true;
}
void LLDockControl::drawToungue()
diff --git a/indra/llui/lldockcontrol.h b/indra/llui/lldockcontrol.h
index 2e7359245f..c9602011f6 100644
--- a/indra/llui/lldockcontrol.h
+++ b/indra/llui/lldockcontrol.h
@@ -43,6 +43,7 @@ public:
{
TOP,
LEFT,
+ RIGHT,
BOTTOM
};
@@ -79,12 +80,13 @@ private:
private:
get_allowed_rect_callback_t mGetAllowedRectCallback;
bool mEnabled;
- bool mRecalculateDocablePosition;
+ bool mRecalculateDockablePosition;
bool mDockWidgetVisible;
DocAt mDockAt;
LLView* mDockWidget;
LLRect mPrevDockRect;
LLRect mRootRect;
+ LLRect mFloaterRect;
LLFloater* mDockableFloater;
LLUIImagePtr mDockTongue;
S32 mDockTongueX;
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 7100ea13a7..432397d3e9 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -935,7 +935,7 @@ void LLFloater::applyPositioning(LLFloater* other)
case LLFloaterEnums::OPEN_POSITIONING_CASCADE_GROUP:
case LLFloaterEnums::OPEN_POSITIONING_CASCADING:
- if (other != NULL)
+ if (other != NULL && other != this)
{
stackWith(*other);
}
@@ -1070,7 +1070,7 @@ void LLFloater::handleReshape(const LLRect& new_rect, bool by_user)
const LLRect old_rect = getRect();
LLView::handleReshape(new_rect, by_user);
- if (by_user)
+ if (by_user && !isMinimized())
{
storeRectControl();
mOpenPositioning = LLFloaterEnums::OPEN_POSITIONING_NONE;
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/lltoolbar.cpp b/indra/llui/lltoolbar.cpp
index 515605200e..287e3e2b41 100644
--- a/indra/llui/lltoolbar.cpp
+++ b/indra/llui/lltoolbar.cpp
@@ -112,6 +112,10 @@ LLToolBar::LLToolBar(const LLToolBar::Params& p)
mStartDragItemCallback(NULL),
mHandleDragItemCallback(NULL),
mHandleDropCallback(NULL),
+ mButtonAddSignal(NULL),
+ mButtonEnterSignal(NULL),
+ mButtonLeaveSignal(NULL),
+ mButtonRemoveSignal(NULL),
mDragAndDropTarget(false)
{
mButtonParams[LLToolBarEnums::BTNTYPE_ICONS_WITH_TEXT] = p.button_icon_and_text;
@@ -121,6 +125,10 @@ LLToolBar::LLToolBar(const LLToolBar::Params& p)
LLToolBar::~LLToolBar()
{
delete mPopupMenuHandle.get();
+ delete mButtonAddSignal;
+ delete mButtonEnterSignal;
+ delete mButtonLeaveSignal;
+ delete mButtonRemoveSignal;
}
void LLToolBar::createContextMenu()
@@ -212,7 +220,6 @@ bool LLToolBar::addCommand(const LLCommandId& commandId, int rank)
mButtonPanel->addChild(button);
mButtonMap.insert(std::make_pair(commandId.uuid(), button));
-
// Insert the command and button in the right place in their respective lists
if ((rank >= mButtonCommands.size()) || (rank == RANK_NONE))
{
@@ -238,6 +245,14 @@ bool LLToolBar::addCommand(const LLCommandId& commandId, int rank)
mNeedsLayout = true;
+ updateLayoutAsNeeded();
+
+
+ if (mButtonAddSignal)
+ {
+ (*mButtonAddSignal)(button);
+ }
+
return true;
}
@@ -264,6 +279,11 @@ int LLToolBar::removeCommand(const LLCommandId& commandId)
++rank;
}
+ if (mButtonRemoveSignal)
+ {
+ (*mButtonRemoveSignal)(*it_button);
+ }
+
// Delete the button and erase the command and button records
delete (*it_button);
mButtonCommands.erase(it_command);
@@ -352,6 +372,23 @@ bool LLToolBar::stopCommandInProgress(const LLCommandId& commandId)
return (command_button != NULL);
}
+bool LLToolBar::flashCommand(const LLCommandId& commandId, bool flash)
+{
+ LLButton * command_button = NULL;
+
+ if (commandId != LLCommandId::null)
+ {
+ command_id_map::iterator it = mButtonMap.find(commandId.uuid());
+ if (it != mButtonMap.end())
+ {
+ command_button = it->second;
+ command_button->setFlashing(flash ? TRUE : FALSE);
+ }
+ }
+
+ return (command_button != NULL);
+}
+
BOOL LLToolBar::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
LLRect button_panel_rect;
@@ -790,6 +827,11 @@ void LLToolBar::createButtons()
{
BOOST_FOREACH(LLToolBarButton* button, mButtons)
{
+ if (mButtonRemoveSignal)
+ {
+ (*mButtonRemoveSignal)(button);
+ }
+
delete button;
}
mButtons.clear();
@@ -801,6 +843,11 @@ void LLToolBar::createButtons()
mButtons.push_back(button);
mButtonPanel->addChild(button);
mButtonMap.insert(std::make_pair(command_id.uuid(), button));
+
+ if (mButtonAddSignal)
+ {
+ (*mButtonAddSignal)(button);
+ }
}
mNeedsLayout = true;
}
@@ -870,8 +917,7 @@ LLToolBarButton* LLToolBar::createButton(const LLCommandId& id)
button->setCommitCallback(executeParam);
}
-
-
+ // Set up "is running" query callback
const std::string& isRunningFunction = commandp->isRunningFunctionName();
if (isRunningFunction.length() > 0)
{
@@ -898,6 +944,36 @@ LLToolBarButton* LLToolBar::createButton(const LLCommandId& id)
return button;
}
+boost::signals2::connection connectSignal(LLToolBar::button_signal_t*& signal, const LLToolBar::button_signal_t::slot_type& cb)
+{
+ if (!signal)
+ {
+ signal = new LLToolBar::button_signal_t();
+ }
+
+ return signal->connect(cb);
+}
+
+boost::signals2::connection LLToolBar::setButtonAddCallback(const button_signal_t::slot_type& cb)
+{
+ return connectSignal(mButtonAddSignal, cb);
+}
+
+boost::signals2::connection LLToolBar::setButtonEnterCallback(const button_signal_t::slot_type& cb)
+{
+ return connectSignal(mButtonEnterSignal, cb);
+}
+
+boost::signals2::connection LLToolBar::setButtonLeaveCallback(const button_signal_t::slot_type& cb)
+{
+ return connectSignal(mButtonLeaveSignal, cb);
+}
+
+boost::signals2::connection LLToolBar::setButtonRemoveCallback(const button_signal_t::slot_type& cb)
+{
+ return connectSignal(mButtonRemoveSignal, cb);
+}
+
BOOL LLToolBar::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
EDragAndDropType cargo_type,
void* cargo_data,
@@ -969,8 +1045,6 @@ LLToolBarButton::LLToolBarButton(const Params& p)
mOriginalImageOverlayColor(p.image_overlay_color),
mOriginalImageOverlaySelectedColor(p.image_overlay_selected_color)
{
- mButtonFlashRate = 0.0;
- mButtonFlashCount = 0;
}
LLToolBarButton::~LLToolBarButton()
@@ -1012,6 +1086,7 @@ BOOL LLToolBarButton::handleHover(S32 x, S32 y, MASK mask)
{
handled = LLButton::handleHover(x, y, mask);
}
+
return handled;
}
@@ -1024,6 +1099,23 @@ void LLToolBarButton::onMouseEnter(S32 x, S32 y, MASK mask)
{
mNeedsHighlight = TRUE;
}
+
+ LLToolBar* parent_toolbar = getParentByType<LLToolBar>();
+ if (parent_toolbar && parent_toolbar->mButtonEnterSignal)
+ {
+ (*(parent_toolbar->mButtonEnterSignal))(this);
+ }
+}
+
+void LLToolBarButton::onMouseLeave(S32 x, S32 y, MASK mask)
+{
+ LLButton::onMouseLeave(x, y, mask);
+
+ LLToolBar* parent_toolbar = getParentByType<LLToolBar>();
+ if (parent_toolbar && parent_toolbar->mButtonLeaveSignal)
+ {
+ (*(parent_toolbar->mButtonLeaveSignal))(this);
+ }
}
void LLToolBarButton::onMouseCaptureLost()
@@ -1072,25 +1164,25 @@ void LLToolBarButton::setEnabled(BOOL enabled)
}
}
-
const std::string LLToolBarButton::getToolTip() const
{
std::string tooltip;
+
if (labelIsTruncated() || getCurrentLabel().empty())
{
- return LLTrans::getString(LLCommandManager::instance().getCommand(mId)->labelRef()) + " -- " + LLView::getToolTip();
+ tooltip = LLTrans::getString(LLCommandManager::instance().getCommand(mId)->labelRef()) + " -- " + LLView::getToolTip();
}
else
{
- return LLView::getToolTip();
+ tooltip = LLView::getToolTip();
}
-}
-
-
-
-
-
-
+ LLToolBar* parent_toolbar = getParentByType<LLToolBar>();
+ if (parent_toolbar && parent_toolbar->mButtonTooltipSuffix.length() > 0)
+ {
+ tooltip = tooltip + "\n(" + parent_toolbar->mButtonTooltipSuffix + ")";
+ }
+ return tooltip;
+}
diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h
index e634e57f93..f10f39adc3 100644
--- a/indra/llui/lltoolbar.h
+++ b/indra/llui/lltoolbar.h
@@ -71,6 +71,7 @@ public:
void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; }
void onMouseEnter(S32 x, S32 y, MASK mask);
+ void onMouseLeave(S32 x, S32 y, MASK mask);
void onMouseCaptureLost();
void onCommit();
@@ -120,6 +121,8 @@ namespace LLToolBarEnums
SIDE_RIGHT,
SIDE_TOP,
};
+
+ LLLayoutStack::ELayoutOrientation getOrientation(SideType sideType);
}
// NOTE: This needs to occur before Param block declaration for proper compilation.
@@ -142,6 +145,7 @@ namespace LLInitParam
class LLToolBar
: public LLUICtrl
{
+ friend class LLToolBarButton;
public:
struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>
{
@@ -187,6 +191,7 @@ public:
bool hasCommand(const LLCommandId& commandId) const;
bool enableCommand(const LLCommandId& commandId, bool enabled);
bool stopCommandInProgress(const LLCommandId& commandId);
+ bool flashCommand(const LLCommandId& commandId, bool flash);
void setStartDragCallback(tool_startdrag_callback_t cb) { mStartDragItemCallback = cb; }
void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; }
@@ -195,6 +200,15 @@ public:
LLToolBarButton* createButton(const LLCommandId& id);
+ typedef boost::signals2::signal<void (LLView* button)> button_signal_t;
+ boost::signals2::connection setButtonAddCallback(const button_signal_t::slot_type& cb);
+ boost::signals2::connection setButtonEnterCallback(const button_signal_t::slot_type& cb);
+ boost::signals2::connection setButtonLeaveCallback(const button_signal_t::slot_type& cb);
+ boost::signals2::connection setButtonRemoveCallback(const button_signal_t::slot_type& cb);
+
+ void setTooltipButtonSuffix(const std::string& suffix) { mButtonTooltipSuffix = suffix; }
+
+ LLToolBarEnums::SideType getSideType() const { return mSideType; }
bool hasButtons() const { return !mButtons.empty(); }
bool isModified() const { return mModified; }
@@ -254,7 +268,14 @@ private:
LLToolBarButton::Params mButtonParams[LLToolBarEnums::BTNTYPE_COUNT];
- LLHandle<class LLContextMenu> mPopupMenuHandle;
+ LLHandle<class LLContextMenu> mPopupMenuHandle;
+
+ button_signal_t* mButtonAddSignal;
+ button_signal_t* mButtonEnterSignal;
+ button_signal_t* mButtonLeaveSignal;
+ button_signal_t* mButtonRemoveSignal;
+
+ std::string mButtonTooltipSuffix;
};
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/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 9f01674efe..5c0ea2f774 100644..100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -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>
@@ -13350,7 +13383,7 @@
<key>Comment</key>
<string>Settings that are a applied per session (not saved).</string>
<key>Persist</key>
- <integer>1</integer>
+ <integer>0</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
@@ -13361,7 +13394,7 @@
<key>Comment</key>
<string>User settings that are a applied per session (not saved).</string>
<key>Persist</key>
- <integer>1</integer>
+ <integer>0</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml
index d8295ddb87..6ed4480cb1 100644
--- a/indra/newview/app_settings/settings_per_account.xml
+++ b/indra/newview/app_settings/settings_per_account.xml
@@ -33,6 +33,17 @@
<key>Value</key>
<string />
</map>
+ <key>DisplayDestinationsOnInitialRun</key>
+ <map>
+ <key>Comment</key>
+ <string>Display the destinations guide when a user first launches FUI.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>LastInventoryInboxActivity</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/darwin/dmg-cleanup.applescript b/indra/newview/installers/darwin/dmg-cleanup.applescript
index f3d39aec21..8a71b392f9 100644
--- a/indra/newview/installers/darwin/dmg-cleanup.applescript
+++ b/indra/newview/installers/darwin/dmg-cleanup.applescript
@@ -19,7 +19,7 @@ tell application "Finder"
set current view of foo to icon view
set toolbar visible of foo to false
set statusbar visible of foo to false
- set the bounds of foo to {100, 100, 600, 399}
+ set the bounds of foo to {100, 100, 600, 449}
-- set the position of front window to {100, 100}
-- get {name, position} of every item of front window
diff --git a/indra/newview/installers/darwin/fix_application_icon_position.sh b/indra/newview/installers/darwin/fix_application_icon_position.sh
index c6b92589db..618e34820c 100644..100755
--- a/indra/newview/installers/darwin/fix_application_icon_position.sh
+++ b/indra/newview/installers/darwin/fix_application_icon_position.sh
@@ -1,6 +1,6 @@
# just run this script each time after you change the installer's name to fix the icon misalignment
#!/bin/bash
-cp -r ./../../../build-darwin-i386/newview/*.dmg ~/Desktop/TempBuild.dmg
+cp -r ../../../../build-darwin-i386/newview/*.dmg ~/Desktop/TempBuild.dmg
hdid ~/Desktop/TempBuild.dmg
open -a finder /Volumes/Second\ Life\ Installer
osascript dmg-cleanup.applescript
diff --git a/indra/newview/installers/darwin/release-dmg/_DS_Store b/indra/newview/installers/darwin/release-dmg/_DS_Store
index 8f6c25c2f4..747ca961d8 100644
--- a/indra/newview/installers/darwin/release-dmg/_DS_Store
+++ b/indra/newview/installers/darwin/release-dmg/_DS_Store
Binary files differ
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index 4811f1fcd5..02ca7cbb3a 100644..100755
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -1,6 +1,22 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; secondlife setup.nsi
-;; Copyright 2004-2010, Linden Research, Inc.
+;; Copyright 2004-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
;;
;; NSIS Unicode 2.38.1 or higher required
;; http://www.scratchpaper.com/
@@ -293,19 +309,106 @@ Function CheckNetworkConnection
Return
FunctionEnd
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Delete files in Documents and Settings\<user>\SecondLife\cache
-; Delete files in Documents and Settings\All Users\SecondLife\cache
+; Save user files to temp location
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;Function RemoveCacheFiles
-;
-;; Delete files in Documents and Settings\<user>\SecondLife
+Function PreserveUserFiles
+
+Push $0
+Push $1
+Push $2
+
+ RMDir /r "$TEMP\SecondLifeSettingsBackup"
+ CreateDirectory "$TEMP\SecondLifeSettingsBackup"
+ StrCpy $0 0 ; Index number used to iterate via EnumRegKey
+
+ LOOP:
+ EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
+ StrCmp $1 "" DONE ; no more users
+
+ ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath"
+ StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing
+
+ ; Required since ProfileImagePath is of type REG_EXPAND_SZ
+ ExpandEnvStrings $2 $2
+
+ CreateDirectory "$TEMP\SecondLifeSettingsBackup\$0"
+ CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\$0"
+
+ CONTINUE:
+ IntOp $0 $0 + 1
+ Goto LOOP
+ DONE:
+
+Pop $2
+Pop $1
+Pop $0
+
+; Copy files in Documents and Settings\All Users\SecondLife
+Push $0
+ ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
+ StrCmp $0 "" +2
+ CreateDirectory "$TEMP\SecondLifeSettingsBackup\AllUsers\"
+ CopyFiles "$2\Application Data\SecondLife\*" "$TEMP\SecondLifeSettingsBackup\AllUsers\"
+Pop $0
+
+FunctionEnd
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Restore user files from temp location
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Function RestoreUserFiles
+
+Push $0
+Push $1
+Push $2
+
+ StrCpy $0 0 ; Index number used to iterate via EnumRegKey
+
+ LOOP:
+ EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
+ StrCmp $1 "" DONE ; no more users
+
+ ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath"
+ StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing
+
+ ; Required since ProfileImagePath is of type REG_EXPAND_SZ
+ ExpandEnvStrings $2 $2
+
+ CreateDirectory "$2\Application Data\SecondLife\"
+ CopyFiles "$TEMP\SecondLifeSettingsBackup\$0\*" "$2\Application Data\SecondLife\"
+
+ CONTINUE:
+ IntOp $0 $0 + 1
+ Goto LOOP
+ DONE:
+
+Pop $2
+Pop $1
+Pop $0
+
+; Copy files in Documents and Settings\All Users\SecondLife
+Push $0
+ ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
+ StrCmp $0 "" +2
+ CreateDirectory "$2\Application Data\SecondLife\"
+ CopyFiles "$TEMP\SecondLifeSettingsBackup\AllUsers\*" "$2\Application Data\SecondLife\"
+Pop $0
+
+FunctionEnd
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Clobber user files - TEST ONLY
+; This is here for testing, generally not desirable to call it.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;Function ClobberUserFilesTESTONLY
+
;Push $0
;Push $1
;Push $2
-; DetailPrint $(RemoveCacheFilesDP)
;
-; StrCpy $0 0 ; Index number used to iterate via EnumRegKey
+; StrCpy $0 0 ; Index number used to iterate via EnumRegKey
;
; LOOP:
; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
@@ -317,29 +420,24 @@ FunctionEnd
; ; Required since ProfileImagePath is of type REG_EXPAND_SZ
; ExpandEnvStrings $2 $2
;
-; ; When explicitly uninstalling, everything goes away
-; RMDir /r "$2\Application Data\SecondLife\cache"
+; RMDir /r "$2\Application Data\SecondLife\"
;
; CONTINUE:
; IntOp $0 $0 + 1
; Goto LOOP
; DONE:
+;
;Pop $2
;Pop $1
;Pop $0
;
-;; Delete files in Documents and Settings\All Users\SecondLife
+;; Copy files in Documents and Settings\All Users\SecondLife
;Push $0
-; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
-; StrCmp $0 "" +2
-; RMDir /r "$0\SecondLife\cache"
+; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
+; StrCmp $0 "" +2
+; RMDir /r "$2\Application Data\SecondLife\"
;Pop $0
;
-;; Delete filse in C:\Windows\Application Data\SecondLife
-;; If the user is running on a pre-NT system, Application Data lives here instead of
-;; in Documents and Settings.
-;RMDir /r "$WINDIR\Application Data\SecondLife\cache"
-;
;FunctionEnd
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -412,17 +510,15 @@ Push $2
; Required since ProfileImagePath is of type REG_EXPAND_SZ
ExpandEnvStrings $2 $2
- ; If uninstalling a normal install remove everything
- ; Otherwise (preview/dmz etc) just remove cache
- StrCmp $INSTFLAGS "" RM_ALL RM_CACHE
- RM_ALL:
- RMDir /r "$2\Application Data\SecondLife"
- RM_CACHE:
- # Local Settings directory is the cache, there is no "cache" subdir
- RMDir /r "$2\Local Settings\Application Data\SecondLife"
- # Vista version of the same
- RMDir /r "$2\AppData\Local\SecondLife"
- Delete "$2\Application Data\SecondLife\user_settings\settings_windlight.xml"
+ ; Remove all cache and settings files but leave any other .txt files to preserve the chat logs
+; RMDir /r "$2\Application Data\SecondLife\logs"
+ RMDir /r "$2\Application Data\SecondLife\browser_profile"
+ RMDir /r "$2\Application Data\SecondLife\user_settings"
+ Delete "$2\Application Data\SecondLife\*.xml"
+ Delete "$2\Application Data\SecondLife\*.bmp"
+ Delete "$2\Application Data\SecondLife\search_history.txt"
+ Delete "$2\Application Data\SecondLife\plugin_cookies.txt"
+ Delete "$2\Application Data\SecondLife\typed_locations.txt"
CONTINUE:
IntOp $0 $0 + 1
@@ -440,7 +536,7 @@ Push $0
RMDir /r "$0\SecondLife"
Pop $0
-; Delete filse in C:\Windows\Application Data\SecondLife
+; Delete files in C:\Windows\Application Data\SecondLife
; If the user is running on a pre-NT system, Application Data lives here instead of
; in Documents and Settings.
RMDir /r "$WINDIR\Application Data\SecondLife"
@@ -770,10 +866,11 @@ Call CloseSecondLife ; Make sure we're not running
Call CheckNetworkConnection ; ping secondlife.com
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Call PreserveUserFiles
+
;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers.
;Call RemoveCacheFiles ; Installing over removes potentially corrupted
; VFS and cache files.
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Need to clean out shader files from previous installs to fix DEV-5663
Call RemoveOldShaders
@@ -854,6 +951,18 @@ WriteRegExpandStr HKEY_CLASSES_ROOT "x-grid-location-info\shell\open\command" ""
; write out uninstaller
WriteUninstaller "$INSTDIR\uninst.exe"
+; Remove existing "Second Life Viewer 2" install if any.
+StrCmp $INSTDIR "$PROGRAMFILES\SecondLifeViewer2" SLV2_DONE ; unless that's the install directory
+IfFileExists "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" SLV2_FOUND SLV2_DONE
+
+SLV2_FOUND:
+ExecWait '"$PROGRAMFILES\SecondLifeViewer2\uninst.exe" /S _?=$PROGRAMFILES\SecondLifeViewer2'
+Delete "$PROGRAMFILES\SecondLifeViewer2\uninst.exe" ; with _? option above, uninst.exe will be left behind.
+RMDir "$PROGRAMFILES\SecondLifeViewer2" ; will remove only if empty.
+
+SLV2_DONE:
+Call RestoreUserFiles
+
; end of default section
SectionEnd
diff --git a/indra/newview/installers/windows/lang_ru.nsi b/indra/newview/installers/windows/lang_ru.nsi
index bd37e4ad4c..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 7b4ce358f3..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/llappviewer.cpp b/indra/newview/llappviewer.cpp
index ecfd101eeb..dc88c81d6a 100644..100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2825,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/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index 98de418878..6c9058caf1 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -443,17 +443,17 @@ BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
{
setLandingTab(dest);
}
- /*
- * the condition dest == NULL can be satisfied not only in the case
- * of dragging to the right from the last tab of the favbar. there is a
- * small gap between each tab. if the user drags something exactly there
- * then mLandingTab will be set to NULL and the dragged item will be pushed
- * to the end of the favorites bar. this is incorrect behavior. that's why
- * we need an additional check which excludes the case described previously
- * making sure that the mouse pointer is beyond the last tab.
- */
- else if (mLastTab && x >= mLastTab->getRect().mRight)
+ else if (mLastTab && (x >= mLastTab->getRect().mRight))
{
+ /*
+ * the condition dest == NULL can be satisfied not only in the case
+ * of dragging to the right from the last tab of the favbar. there is a
+ * small gap between each tab. if the user drags something exactly there
+ * then mLandingTab will be set to NULL and the dragged item will be pushed
+ * to the end of the favorites bar. this is incorrect behavior. that's why
+ * we need an additional check which excludes the case described previously
+ * making sure that the mouse pointer is beyond the last tab.
+ */
setLandingTab(NULL);
}
@@ -467,7 +467,6 @@ BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
if (drop)
{
handleExistingFavoriteDragAndDrop(x, y);
- showDragMarker(FALSE);
}
}
else
@@ -490,7 +489,6 @@ BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
setLandingTab(NULL);
}
handleNewFavoriteDragAndDrop(item, favorites_id, x, y);
- showDragMarker(FALSE);
}
}
}
@@ -504,20 +502,29 @@ BOOL LLFavoritesBarCtrl::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
void LLFavoritesBarCtrl::handleExistingFavoriteDragAndDrop(S32 x, S32 y)
{
+ // Identify the button hovered and the side to drop
LLFavoriteLandmarkButton* dest = dynamic_cast<LLFavoriteLandmarkButton*>(mLandingTab);
+ bool insert_before = true;
+ if (!dest)
+ {
+ insert_before = false;
+ dest = dynamic_cast<LLFavoriteLandmarkButton*>(mLastTab);
+ }
- // there is no need to handle if an item was dragged onto itself
+ // There is no need to handle if an item was dragged onto itself
if (dest && dest->getLandmarkId() == mDragItemId)
{
return;
}
+ // Insert the dragged item in the right place
if (dest)
{
- LLInventoryModel::updateItemsOrder(mItems, mDragItemId, dest->getLandmarkId());
+ LLInventoryModel::updateItemsOrder(mItems, mDragItemId, dest->getLandmarkId(), insert_before);
}
else
{
+ // This can happen when the item list is empty
mItems.push_back(gInventory.getItem(mDragItemId));
}
@@ -534,22 +541,35 @@ void LLFavoritesBarCtrl::handleExistingFavoriteDragAndDrop(S32 x, S32 y)
void LLFavoritesBarCtrl::handleNewFavoriteDragAndDrop(LLInventoryItem *item, const LLUUID& favorites_id, S32 x, S32 y)
{
- LLFavoriteLandmarkButton* dest = dynamic_cast<LLFavoriteLandmarkButton*>(mLandingTab);
-
- // there is no need to handle if an item was dragged onto itself
+ // Identify the button hovered and the side to drop
+ LLFavoriteLandmarkButton* dest = NULL;
+ bool insert_before = true;
+ if (!mItems.empty())
+ {
+ dest = dynamic_cast<LLFavoriteLandmarkButton*>(mLandingTab);
+ if (!dest)
+ {
+ insert_before = false;
+ dest = dynamic_cast<LLFavoriteLandmarkButton*>(mLastTab);
+ }
+ }
+
+ // There is no need to handle if an item was dragged onto itself
if (dest && dest->getLandmarkId() == mDragItemId)
{
return;
}
-
+
LLPointer<LLViewerInventoryItem> viewer_item = new LLViewerInventoryItem(item);
+ // Insert the dragged item in the right place
if (dest)
{
- insertBeforeItem(mItems, dest->getLandmarkId(), viewer_item);
+ insertItem(mItems, dest->getLandmarkId(), viewer_item, insert_before);
}
else
{
+ // This can happen when the item list is empty
mItems.push_back(viewer_item);
}
@@ -642,7 +662,7 @@ void LLFavoritesBarCtrl::draw()
{
// mouse pointer hovers over an existing tab
LLRect rect = mLandingTab->getRect();
- mImageDragIndication->draw(rect.mLeft - w/2, rect.getHeight(), w, h);
+ mImageDragIndication->draw(rect.mLeft, rect.getHeight(), w, h);
}
else if (mLastTab)
{
@@ -650,6 +670,8 @@ void LLFavoritesBarCtrl::draw()
LLRect rect = mLastTab->getRect();
mImageDragIndication->draw(rect.mRight, rect.getHeight(), w, h);
}
+ // Once drawn, mark this false so we won't draw it again (unless we hit the favorite bar again)
+ mShowDragMarker = FALSE;
}
}
@@ -721,7 +743,7 @@ void LLFavoritesBarCtrl::updateButtons()
if (first_changed_item_index <= mItems.count())
{
// Rebuild the buttons only
- // child_list_t is a linked list, so safe to erase from the middle if we pre-incrament the iterator
+ // child_list_t is a linked list, so safe to erase from the middle if we pre-increment the iterator
while (child_it != childs->end())
{
@@ -810,9 +832,9 @@ LLButton* LLFavoritesBarCtrl::createButton(const LLPointer<LLViewerInventoryItem
/**
* WORKAROUND:
- * there are some problem with displaying of fonts in buttons.
- * Empty space (or ...) is displaying instead of last symbols, even though the width of the button is enough.
- * Problem will gone, if we stretch out the button. For that reason I have to put additional 20 pixels.
+ * There are some problem with displaying of fonts in buttons.
+ * Empty space or ellipsis might be displayed instead of last symbols, even though the width of the button is enough.
+ * The problem disappears if we pad the button with 20 pixels.
*/
int required_width = mFont->getWidth(item->getName()) + 20;
int width = required_width > def_button_width? def_button_width : required_width;
@@ -840,7 +862,6 @@ LLButton* LLFavoritesBarCtrl::createButton(const LLPointer<LLViewerInventoryItem
fav_btn->setRect(butt_rect);
// change only left and save bottom
fav_btn->setFont(mFont);
- fav_btn->setName(item->getName());
fav_btn->setLabel(item->getName());
fav_btn->setToolTip(item->getName());
fav_btn->setCommitCallback(boost::bind(&LLFavoritesBarCtrl::onButtonClick, this, item->getUUID()));
@@ -1298,25 +1319,24 @@ BOOL LLFavoritesBarCtrl::handleHover(S32 x, S32 y, MASK mask)
LLUICtrl* LLFavoritesBarCtrl::findChildByLocalCoords(S32 x, S32 y)
{
- LLUICtrl* ctrl = 0;
- S32 screenX, screenY;
+ LLUICtrl* ctrl = NULL;
const child_list_t* list = getChildList();
- localPointToScreen(x, y, &screenX, &screenY);
-
- // look for a child which contains the point (screenX, screenY) in it's rectangle
for (child_list_const_iter_t i = list->begin(); i != list->end(); ++i)
{
- LLRect rect;
- localRectToScreen((*i)->getRect(), &rect);
-
- if (rect.pointInRect(screenX, screenY))
+ // Look only for children that are favorite buttons
+ if ((*i)->getName() == "favorites_bar_btn")
{
- ctrl = dynamic_cast<LLUICtrl*>(*i);
- break;
+ LLRect rect = (*i)->getRect();
+ // We consider a button hit if the cursor is left of the right side
+ // This makes the hit a bit less finicky than hitting directly on the button itself
+ if (x <= rect.mRight)
+ {
+ ctrl = dynamic_cast<LLUICtrl*>(*i);
+ break;
+ }
}
}
-
return ctrl;
}
@@ -1337,29 +1357,28 @@ BOOL LLFavoritesBarCtrl::needToSaveItemsOrder(const LLInventoryModel::item_array
return result;
}
-LLInventoryModel::item_array_t::iterator LLFavoritesBarCtrl::findItemByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id)
+void LLFavoritesBarCtrl::insertItem(LLInventoryModel::item_array_t& items, const LLUUID& dest_item_id, LLViewerInventoryItem* insertedItem, bool insert_before)
{
- LLInventoryModel::item_array_t::iterator result = items.end();
+ // Get the iterator to the destination item
+ LLInventoryModel::item_array_t::iterator it_dest = LLInventoryModel::findItemIterByUUID(items, dest_item_id);
+ if (it_dest == items.end())
+ return;
- for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i)
+ // Go to the next element if one wishes to insert after the dest element
+ if (!insert_before)
{
- if ((*i)->getUUID() == id)
- {
- result = i;
- break;
- }
+ ++it_dest;
}
-
- return result;
-}
-
-void LLFavoritesBarCtrl::insertBeforeItem(LLInventoryModel::item_array_t& items, const LLUUID& beforeItemId, LLViewerInventoryItem* insertedItem)
-{
- LLViewerInventoryItem* beforeItem = gInventory.getItem(beforeItemId);
- llassert(beforeItem);
- if (beforeItem)
+
+ // Insert the source item in the right place
+ if (it_dest != items.end())
+ {
+ items.insert(it_dest, insertedItem);
+ }
+ else
{
- items.insert(findItemByUUID(items, beforeItem->getUUID()), insertedItem);
+ // Append to the list if it_dest reached the end
+ items.push_back(insertedItem);
}
}
diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h
index 1b11d6196e..2f75b3bb0e 100644
--- a/indra/newview/llfavoritesbar.h
+++ b/indra/newview/llfavoritesbar.h
@@ -130,7 +130,7 @@ private:
* inserts an item identified by insertedItemId BEFORE an item identified by beforeItemId.
* this function assumes that an item identified by insertedItemId doesn't exist in items array.
*/
- void insertBeforeItem(LLInventoryModel::item_array_t& items, const LLUUID& beforeItemId, LLViewerInventoryItem* insertedItem);
+ void insertItem(LLInventoryModel::item_array_t& items, const LLUUID& dest_item_id, LLViewerInventoryItem* insertedItem, bool insert_before);
// finds an item by it's UUID in the items array
LLInventoryModel::item_array_t::iterator findItemByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id);
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/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/llfloatertoybox.cpp b/indra/newview/llfloatertoybox.cpp
index 66f644748e..f527937e8f 100644
--- a/indra/newview/llfloatertoybox.cpp
+++ b/indra/newview/llfloatertoybox.cpp
@@ -63,6 +63,7 @@ BOOL LLFloaterToybox::postBuild()
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));
+ mToolBar->setButtonEnterCallback(boost::bind(&LLFloaterToybox::onToolBarButtonEnter,this,_1));
//
// Sort commands by localized labels so they will appear alphabetized in all languages
@@ -105,8 +106,8 @@ void LLFloaterToybox::draw()
{
const LLCommandId& id = *it;
- const bool commandOnToolbar = gToolBarView->hasCommand(id);
- mToolBar->enableCommand(id, !commandOnToolbar);
+ const bool command_not_present = (gToolBarView->hasCommand(id) == LLToolBarView::TOOLBAR_NONE);
+ mToolBar->enableCommand(id, command_not_present);
}
LLFloater::draw();
@@ -140,5 +141,30 @@ BOOL LLFloaterToybox::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
return mToolBar->handleDragAndDrop(local_x, local_y, mask, drop, cargo_type, cargo_data, accept, tooltip_msg);
}
+void LLFloaterToybox::onToolBarButtonEnter(LLView* button)
+{
+ std::string suffix = "";
+
+ LLCommandId commandId(button->getName());
+ LLCommand* command = LLCommandManager::instance().getCommand(commandId);
+
+ if (command)
+ {
+ S32 command_loc = gToolBarView->hasCommand(commandId);
+
+ switch(command_loc)
+ {
+ case LLToolBarView::TOOLBAR_BOTTOM: suffix = LLTrans::getString("Toolbar_Bottom_Tooltip"); break;
+ case LLToolBarView::TOOLBAR_LEFT: suffix = LLTrans::getString("Toolbar_Left_Tooltip"); break;
+ case LLToolBarView::TOOLBAR_RIGHT: suffix = LLTrans::getString("Toolbar_Right_Tooltip"); break;
+
+ default:
+ break;
+ }
+ }
+
+ mToolBar->setTooltipButtonSuffix(suffix);
+}
+
// eof
diff --git a/indra/newview/llfloatertoybox.h b/indra/newview/llfloatertoybox.h
index 62bf68680d..6f0275b8fe 100644
--- a/indra/newview/llfloatertoybox.h
+++ b/indra/newview/llfloatertoybox.h
@@ -52,6 +52,8 @@ public:
protected:
void onBtnRestoreDefaults();
+ void onToolBarButtonEnter(LLView* button);
+
public:
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/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp
index 33cb3a54a7..c8e48b0d42 100644
--- a/indra/newview/llimfloatercontainer.cpp
+++ b/indra/newview/llimfloatercontainer.cpp
@@ -47,12 +47,13 @@ LLIMFloaterContainer::LLIMFloaterContainer(const LLSD& seed)
LLIMFloaterContainer::~LLIMFloaterContainer()
{
+ mNewMessageConnection.disconnect();
LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::IM, this);
}
BOOL LLIMFloaterContainer::postBuild()
{
- LLIMModel::instance().mNewMsgSignal.connect(boost::bind(&LLIMFloaterContainer::onNewMessageReceived, this, _1));
+ mNewMessageConnection = LLIMModel::instance().mNewMsgSignal.connect(boost::bind(&LLIMFloaterContainer::onNewMessageReceived, this, _1));
// Do not call base postBuild to not connect to mCloseSignal to not close all floaters via Close button
// mTabContainer will be initialized in LLMultiFloater::addChild()
return TRUE;
diff --git a/indra/newview/llimfloatercontainer.h b/indra/newview/llimfloatercontainer.h
index 53dfcd78ff..892ecef48d 100644
--- a/indra/newview/llimfloatercontainer.h
+++ b/indra/newview/llimfloatercontainer.h
@@ -62,7 +62,7 @@ public:
private:
typedef std::map<LLUUID,LLFloater*> avatarID_panel_map_t;
avatarID_panel_map_t mSessions;
-
+ boost::signals2::connection mNewMessageConnection;
void onNewMessageReceived(const LLSD& data);
};
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 6e9baed5f2..ed4bb727cd 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -1679,13 +1679,44 @@ BOOL LLCallDialog::postBuild()
{
if (!LLDockableFloater::postBuild() || !gToolBarView)
return FALSE;
+
+ dockToToolbarButton("speak");
+
+ return TRUE;
+}
+
+void LLCallDialog::dockToToolbarButton(const std::string& toolbarButtonName)
+{
+ LLDockControl::DocAt dock_pos = getDockControlPos(toolbarButtonName);
+ LLView *anchor_panel = gToolBarView->findChildView(toolbarButtonName);
- LLView *anchor_panel = gToolBarView->findChildView("speak");
- setDockControl(new LLDockControl(anchor_panel, this, getDockTongue(), LLDockControl::TOP));
+ setUseTongue(anchor_panel);
- return TRUE;
+ setDockControl(new LLDockControl(anchor_panel, this, getDockTongue(dock_pos), dock_pos));
}
+LLDockControl::DocAt LLCallDialog::getDockControlPos(const std::string& toolbarButtonName)
+{
+ LLCommandId command_id(toolbarButtonName);
+ S32 toolbar_loc = gToolBarView->hasCommand(command_id);
+
+ LLDockControl::DocAt doc_at = LLDockControl::TOP;
+
+ switch (toolbar_loc)
+ {
+ case LLToolBarView::TOOLBAR_LEFT:
+ doc_at = LLDockControl::RIGHT;
+ break;
+
+ case LLToolBarView::TOOLBAR_RIGHT:
+ doc_at = LLDockControl::LEFT;
+ break;
+ }
+
+ return doc_at;
+}
+
+
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLOutgoingCallDialog
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h
index 93b604d36a..b1be26a169 100644
--- a/indra/newview/llimview.h
+++ b/indra/newview/llimview.h
@@ -491,14 +491,16 @@ class LLCallDialog : public LLDockableFloater
{
public:
LLCallDialog(const LLSD& payload);
- ~LLCallDialog();
+ virtual ~LLCallDialog();
virtual BOOL postBuild();
+ void dockToToolbarButton(const std::string& toolbarButtonName);
+
// check timer state
/*virtual*/ void draw();
/*virtual*/ void onOpen(const LLSD& key);
-
+
protected:
// lifetime timer for a notification
LLTimer mLifetimeTimer;
@@ -519,6 +521,9 @@ protected:
void setIcon(const LLSD& session_id, const LLSD& participant_id);
LLSD mPayload;
+
+private:
+ LLDockControl::DocAt getDockControlPos(const std::string& toolbarButtonName);
};
class LLIncomingCallDialog : public LLCallDialog
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index e86c427ae2..fb02fe0ff7 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -2879,40 +2879,62 @@ BOOL LLInventoryModel::getIsFirstTimeInViewer2()
return sFirstTimeInViewer2;
}
-static LLInventoryModel::item_array_t::iterator find_item_iter_by_uuid(LLInventoryModel::item_array_t& items, const LLUUID& id)
+LLInventoryModel::item_array_t::iterator LLInventoryModel::findItemIterByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id)
{
- LLInventoryModel::item_array_t::iterator result = items.end();
+ LLInventoryModel::item_array_t::iterator curr_item = items.begin();
- for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i)
+ while (curr_item != items.end())
{
- if ((*i)->getUUID() == id)
+ if ((*curr_item)->getUUID() == id)
{
- result = i;
break;
}
+ ++curr_item;
}
- return result;
+ return curr_item;
}
// static
// * @param[in, out] items - vector with items to be updated. It should be sorted in a right way
// * before calling this method.
// * @param src_item_id - LLUUID of inventory item to be moved in new position
-// * @param dest_item_id - LLUUID of inventory item before which source item should be placed.
-void LLInventoryModel::updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, const LLUUID& dest_item_id)
+// * @param dest_item_id - LLUUID of inventory item before (or after) which source item should
+// * be placed.
+// * @param insert_before - bool indicating if src_item_id should be placed before or after
+// * dest_item_id. Default is true.
+void LLInventoryModel::updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, const LLUUID& dest_item_id, bool insert_before)
{
- LLInventoryModel::item_array_t::iterator it_src = find_item_iter_by_uuid(items, src_item_id);
- LLInventoryModel::item_array_t::iterator it_dest = find_item_iter_by_uuid(items, dest_item_id);
+ LLInventoryModel::item_array_t::iterator it_src = findItemIterByUUID(items, src_item_id);
+ LLInventoryModel::item_array_t::iterator it_dest = findItemIterByUUID(items, dest_item_id);
- if (it_src == items.end() || it_dest == items.end()) return;
+ // If one of the passed UUID is not in the item list, bail out
+ if ((it_src == items.end()) || (it_dest == items.end()))
+ return;
+ // Erase the source element from the list, keep a copy before erasing.
LLViewerInventoryItem* src_item = *it_src;
items.erase(it_src);
- // target iterator can not be valid because the container was changed, so update it.
- it_dest = find_item_iter_by_uuid(items, dest_item_id);
- items.insert(it_dest, src_item);
+ // Note: Target iterator is not valid anymore because the container was changed, so update it.
+ it_dest = findItemIterByUUID(items, dest_item_id);
+
+ // Go to the next element if one wishes to insert after the dest element
+ if (!insert_before)
+ {
+ ++it_dest;
+ }
+
+ // Reinsert the source item in the right place
+ if (it_dest != items.end())
+ {
+ items.insert(it_dest, src_item);
+ }
+ else
+ {
+ // Append to the list if it_dest reached the end
+ items.push_back(src_item);
+ }
}
//* @param[in] items vector of items in order to be saved.
diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h
index e0e81f1006..a0fd455cf3 100644
--- a/indra/newview/llinventorymodel.h
+++ b/indra/newview/llinventorymodel.h
@@ -332,11 +332,16 @@ protected:
//--------------------------------------------------------------------
public:
// Changes items order by insertion of the item identified by src_item_id
- // before the item identified by dest_item_id. Both items must exist in items array.
- // Sorting is stored after method is finished. Only src_item_id is moved before dest_item_id.
+ // before (or after) the item identified by dest_item_id. Both items must exist in items array.
+ // Sorting is stored after method is finished. Only src_item_id is moved before (or after) dest_item_id.
+ // The parameter "insert_before" controls on which side of dest_item_id src_item_id gets rensinserted.
static void updateItemsOrder(LLInventoryModel::item_array_t& items,
const LLUUID& src_item_id,
- const LLUUID& dest_item_id);
+ const LLUUID& dest_item_id,
+ bool insert_before = true);
+ // Gets an iterator on an item vector knowing only the item UUID.
+ // Returns end() of the vector if not found.
+ static LLInventoryModel::item_array_t::iterator findItemIterByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id);
// Saves current order of the passed items using inventory item sort field.
// Resets 'items' sort fields and saves them on server.
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index a811332261..4674c85324 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -147,12 +147,12 @@ LLNearbyChatBar* LLNearbyChatBar::getInstance()
void LLNearbyChatBar::showHistory()
{
+ openFloater();
+
if (!getChildView("nearby_chat")->getVisible())
{
onToggleNearbyChatPanel();
}
-
- openFloater();
}
void LLNearbyChatBar::draw()
@@ -379,7 +379,10 @@ void LLNearbyChatBar::onToggleNearbyChatPanel()
if (nearby_chat->getVisible())
{
- mExpandedHeight = getRect().getHeight();
+ if (!isMinimized())
+ {
+ mExpandedHeight = getRect().getHeight();
+ }
setResizeLimits(getMinWidth(), COLLAPSED_HEIGHT);
nearby_chat->setVisible(FALSE);
reshape(getRect().getWidth(), COLLAPSED_HEIGHT);
@@ -396,6 +399,15 @@ void LLNearbyChatBar::onToggleNearbyChatPanel()
}
}
+void LLNearbyChatBar::setMinimized(BOOL b)
+{
+ if (b != LLFloater::isMinimized())
+ {
+ LLFloater::setMinimized(b);
+ getChildView("nearby_chat")->setVisible(!b);
+ }
+}
+
void LLNearbyChatBar::onChatBoxCommit()
{
if (mChatBox->getText().length() > 0)
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index bc00c1b9fc..e9734899b3 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -60,6 +60,7 @@ public:
static void sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate);
void showHistory();
+ /*virtual*/void setMinimized(BOOL b);
protected:
static BOOL matchChatTypeTrigger(const std::string& in_str, std::string* out_str);
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index 330a21ef65..c43c95a366 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -568,7 +568,8 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, // WARNING - not
sChatWatcher->post(notification);
- if( chat_bar->getVisible() && nearby_chat->getVisible()
+ if( !chat_bar->isMinimized()
+ && nearby_chat->isInVisibleChain()
|| ( chat_msg.mSourceType == CHAT_SOURCE_AGENT
&& gSavedSettings.getBOOL("UseChatBubbles") )
|| !mChannel->getShowToasts() ) // to prevent toasts in Busy mode
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index d6c407d548..9944b51902 100644
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -111,7 +111,7 @@ LLPanelMainInventory::LLPanelMainInventory(const LLPanel::Params& p)
mCommitCallbackRegistrar.add("Inventory.EmptyTrash", boost::bind(&LLInventoryModel::emptyFolderType, &gInventory, "ConfirmEmptyTrash", LLFolderType::FT_TRASH));
mCommitCallbackRegistrar.add("Inventory.EmptyLostAndFound", boost::bind(&LLInventoryModel::emptyFolderType, &gInventory, "ConfirmEmptyLostAndFound", LLFolderType::FT_LOST_AND_FOUND));
mCommitCallbackRegistrar.add("Inventory.DoCreate", boost::bind(&LLPanelMainInventory::doCreate, this, _2));
- mCommitCallbackRegistrar.add("Inventory.NewWindow", boost::bind(&LLPanelMainInventory::newWindow, this));
+ //mCommitCallbackRegistrar.add("Inventory.NewWindow", boost::bind(&LLPanelMainInventory::newWindow, this));
mCommitCallbackRegistrar.add("Inventory.ShowFilters", boost::bind(&LLPanelMainInventory::toggleFindOptions, this));
mCommitCallbackRegistrar.add("Inventory.ResetFilters", boost::bind(&LLPanelMainInventory::resetFilters, this));
mCommitCallbackRegistrar.add("Inventory.SetSortBy", boost::bind(&LLPanelMainInventory::setSortBy, this, _2));
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index ffe864e220..3aa6a3b7e5 100644
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
@@ -203,10 +203,9 @@ void LLSysWellWindow::reshapeWindow()
{
new_window_height = MAX_WINDOW_HEIGHT;
}
- S32 newY = curRect.mTop + new_window_height - curRect.getHeight();
- S32 newWidth = curRect.getWidth() < MIN_WINDOW_WIDTH ? MIN_WINDOW_WIDTH
- : curRect.getWidth();
- curRect.setLeftTopAndSize(curRect.mLeft, newY, newWidth, new_window_height);
+ S32 newWidth = curRect.getWidth() < MIN_WINDOW_WIDTH ? MIN_WINDOW_WIDTH : curRect.getWidth();
+
+ curRect.setLeftTopAndSize(curRect.mLeft, curRect.mTop, newWidth, new_window_height);
reshape(curRect.getWidth(), curRect.getHeight(), TRUE);
setRect(curRect);
}
diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp
index 5d2cebe031..ed1dfbb8cd 100644
--- a/indra/newview/lltoolbarview.cpp
+++ b/indra/newview/lltoolbarview.cpp
@@ -30,12 +30,16 @@
#include "lltoolbarview.h"
#include "llappviewer.h"
+#include "llbutton.h"
+#include "llclipboard.h"
#include "lldir.h"
-#include "llxmlnode.h"
+#include "lldockablefloater.h"
+#include "lldockcontrol.h"
+#include "llimview.h"
+#include "lltransientfloatermgr.h"
#include "lltoolbar.h"
-#include "llbutton.h"
#include "lltooldraganddrop.h"
-#include "llclipboard.h"
+#include "llxmlnode.h"
#include "llagent.h" // HACK for destinations guide on startup
#include "llfloaterreg.h" // HACK for destinations guide on startup
@@ -68,13 +72,14 @@ LLToolBarView::ToolbarSet::ToolbarSet()
LLToolBarView::LLToolBarView(const LLToolBarView::Params& p)
: LLUICtrl(p),
- mToolbarLeft(NULL),
- mToolbarRight(NULL),
- mToolbarBottom(NULL),
mDragStarted(false),
mDragToolbarButton(NULL),
mToolbarsLoaded(false)
{
+ for (S32 i = 0; i < TOOLBAR_COUNT; i++)
+ {
+ mToolbars[i] = NULL;
+ }
}
void LLToolBarView::initFromParams(const LLToolBarView::Params& p)
@@ -90,46 +95,100 @@ LLToolBarView::~LLToolBarView()
BOOL LLToolBarView::postBuild()
{
- mToolbarLeft = getChild<LLToolBar>("toolbar_left");
- mToolbarRight = getChild<LLToolBar>("toolbar_right");
- mToolbarBottom = getChild<LLToolBar>("toolbar_bottom");
+ mToolbars[TOOLBAR_LEFT] = getChild<LLToolBar>("toolbar_left");
+ mToolbars[TOOLBAR_RIGHT] = getChild<LLToolBar>("toolbar_right");
+ mToolbars[TOOLBAR_BOTTOM] = getChild<LLToolBar>("toolbar_bottom");
- mToolbarLeft->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3));
- mToolbarLeft->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4));
- mToolbarLeft->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4));
-
- mToolbarRight->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3));
- mToolbarRight->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4));
- mToolbarRight->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4));
-
- 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));
+ for (int i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++)
+ {
+ mToolbars[i]->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3));
+ mToolbars[i]->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4));
+ mToolbars[i]->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4));
+ mToolbars[i]->setButtonAddCallback(boost::bind(LLToolBarView::onToolBarButtonAdded,_1));
+ mToolbars[i]->setButtonRemoveCallback(boost::bind(LLToolBarView::onToolBarButtonRemoved,_1));
+ }
LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&handleLoginToolbarSetup));
return TRUE;
}
-bool LLToolBarView::hasCommand(const LLCommandId& commandId) const
+S32 LLToolBarView::hasCommand(const LLCommandId& commandId) const
+{
+ S32 command_location = TOOLBAR_NONE;
+
+ for (S32 loc = TOOLBAR_FIRST; loc <= TOOLBAR_LAST; loc++)
+ {
+ if (mToolbars[loc]->hasCommand(commandId))
+ {
+ command_location = loc;
+ break;
+ }
+ }
+
+ return command_location;
+}
+
+S32 LLToolBarView::addCommand(const LLCommandId& commandId, EToolBarLocation toolbar, int rank)
+{
+ int old_rank;
+ removeCommand(commandId, old_rank);
+
+ S32 command_location = mToolbars[toolbar]->addCommand(commandId, rank);
+
+ return command_location;
+}
+
+S32 LLToolBarView::removeCommand(const LLCommandId& commandId, int& rank)
{
- bool has_command = false;
- if (mToolbarLeft && !has_command)
+ S32 command_location = hasCommand(commandId);
+ rank = LLToolBar::RANK_NONE;
+
+ if (command_location != TOOLBAR_NONE)
{
- has_command = mToolbarLeft->hasCommand(commandId);
+ rank = mToolbars[command_location]->removeCommand(commandId);
}
- if (mToolbarRight && !has_command)
+
+ return command_location;
+}
+
+S32 LLToolBarView::enableCommand(const LLCommandId& commandId, bool enabled)
+{
+ S32 command_location = hasCommand(commandId);
+
+ if (command_location != TOOLBAR_NONE)
+ {
+ mToolbars[command_location]->enableCommand(commandId, enabled);
+ }
+
+ return command_location;
+}
+
+S32 LLToolBarView::stopCommandInProgress(const LLCommandId& commandId)
+{
+ S32 command_location = hasCommand(commandId);
+
+ if (command_location != TOOLBAR_NONE)
{
- has_command = mToolbarRight->hasCommand(commandId);
+ mToolbars[command_location]->stopCommandInProgress(commandId);
}
- if (mToolbarBottom && !has_command)
+
+ return command_location;
+}
+
+S32 LLToolBarView::flashCommand(const LLCommandId& commandId, bool flash)
+{
+ S32 command_location = hasCommand(commandId);
+
+ if (command_location != TOOLBAR_NONE)
{
- has_command = mToolbarBottom->hasCommand(commandId);
+ mToolbars[command_location]->flashCommand(commandId, flash);
}
- return has_command;
+
+ return command_location;
}
-bool LLToolBarView::addCommand(const LLCommandId& command, LLToolBar* toolbar)
+bool LLToolBarView::addCommandInternal(const LLCommandId& command, LLToolBar* toolbar)
{
LLCommandManager& mgr = LLCommandManager::instance();
if (mgr.getCommand(command))
@@ -147,6 +206,7 @@ bool LLToolBarView::addCommand(const LLCommandId& command, LLToolBar* toolbar)
bool LLToolBarView::loadToolbars(bool force_default)
{
LLToolBarView::ToolbarSet toolbar_set;
+ bool err = false;
// Load the toolbars.xml file
std::string toolbar_file = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "toolbars.xml");
@@ -164,80 +224,90 @@ bool LLToolBarView::loadToolbars(bool force_default)
if(!LLXMLNode::parseFile(toolbar_file, root, NULL))
{
llwarns << "Unable to load toolbars from file: " << toolbar_file << llendl;
- return false;
+ err = true;
}
- if(!root->hasName("toolbars"))
+
+ if (!err && !root->hasName("toolbars"))
{
llwarns << toolbar_file << " is not a valid toolbars definition file" << llendl;
- return false;
+ err = true;
}
// Parse the toolbar settings
LLXUIParser parser;
+ if (!err)
+ {
parser.readXUI(root, toolbar_set, toolbar_file);
- if (!toolbar_set.validateBlock())
+ }
+ if (!err && !toolbar_set.validateBlock())
{
- llerrs << "Unable to validate toolbars from file: " << toolbar_file << llendl;
- return false;
+ llwarns << "Unable to validate toolbars from file: " << toolbar_file << llendl;
+ err = true;
}
- // Clear the toolbars now before adding the loaded commands and settings
- if (mToolbarLeft)
+ if (err)
{
- mToolbarLeft->clearCommandsList();
+ if (force_default)
+ {
+ llerrs << "Unable to load toolbars from default file : " << toolbar_file << llendl;
+ return false;
}
- if (mToolbarRight)
- {
- mToolbarRight->clearCommandsList();
+ // Try to load the default toolbars
+ return loadToolbars(true);
}
- if (mToolbarBottom)
+
+ // Clear the toolbars now before adding the loaded commands and settings
+ for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++)
{
- mToolbarBottom->clearCommandsList();
+ if (mToolbars[i])
+ {
+ mToolbars[i]->clearCommandsList();
+ }
}
// Add commands to each toolbar
- if (toolbar_set.left_toolbar.isProvided() && mToolbarLeft)
+ if (toolbar_set.left_toolbar.isProvided() && mToolbars[TOOLBAR_LEFT])
{
if (toolbar_set.left_toolbar.button_display_mode.isProvided())
{
LLToolBarEnums::ButtonType button_type = toolbar_set.left_toolbar.button_display_mode;
- mToolbarLeft->setButtonType(button_type);
+ mToolbars[TOOLBAR_LEFT]->setButtonType(button_type);
}
- BOOST_FOREACH(const LLCommandId::Params& command_name_param, toolbar_set.left_toolbar.commands)
+ BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.left_toolbar.commands)
{
- if (addCommand(LLCommandId(command_name_param), mToolbarLeft) == false)
+ if (addCommandInternal(LLCommandId(command_params), mToolbars[TOOLBAR_LEFT]))
{
- llwarns << "Error adding command '" << command_name_param.name() << "' to left toolbar." << llendl;
+ llwarns << "Error adding command '" << command_params.name() << "' to left toolbar." << llendl;
}
}
}
- if (toolbar_set.right_toolbar.isProvided() && mToolbarRight)
+ if (toolbar_set.right_toolbar.isProvided() && mToolbars[TOOLBAR_RIGHT])
{
if (toolbar_set.right_toolbar.button_display_mode.isProvided())
{
LLToolBarEnums::ButtonType button_type = toolbar_set.right_toolbar.button_display_mode;
- mToolbarRight->setButtonType(button_type);
+ mToolbars[TOOLBAR_RIGHT]->setButtonType(button_type);
}
- BOOST_FOREACH(const LLCommandId::Params& command_name_param, toolbar_set.right_toolbar.commands)
+ BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.right_toolbar.commands)
{
- if (addCommand(LLCommandId(command_name_param), mToolbarRight) == false)
+ if (addCommandInternal(LLCommandId(command_params), mToolbars[TOOLBAR_RIGHT]))
{
- llwarns << "Error adding command '" << command_name_param.name() << "' to right toolbar." << llendl;
+ llwarns << "Error adding command '" << command_params.name() << "' to right toolbar." << llendl;
}
}
}
- if (toolbar_set.bottom_toolbar.isProvided() && mToolbarBottom)
+ if (toolbar_set.bottom_toolbar.isProvided() && mToolbars[TOOLBAR_BOTTOM])
{
if (toolbar_set.bottom_toolbar.button_display_mode.isProvided())
{
LLToolBarEnums::ButtonType button_type = toolbar_set.bottom_toolbar.button_display_mode;
- mToolbarBottom->setButtonType(button_type);
+ mToolbars[TOOLBAR_BOTTOM]->setButtonType(button_type);
}
- BOOST_FOREACH(const LLCommandId::Params& command_name_param, toolbar_set.bottom_toolbar.commands)
+ BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.bottom_toolbar.commands)
{
- if (addCommand(LLCommandId(command_name_param), mToolbarBottom) == false)
+ if (addCommandInternal(LLCommandId(command_params), mToolbars[TOOLBAR_BOTTOM]))
{
- llwarns << "Error adding command '" << command_name_param.name() << "' to bottom toolbar." << llendl;
+ llwarns << "Error adding command '" << command_params.name() << "' to bottom toolbar." << llendl;
}
}
}
@@ -269,20 +339,20 @@ void LLToolBarView::saveToolbars() const
// Build the parameter tree from the toolbar data
LLToolBarView::ToolbarSet toolbar_set;
- if (mToolbarLeft)
+ if (mToolbars[TOOLBAR_LEFT])
{
- toolbar_set.left_toolbar.button_display_mode = mToolbarLeft->getButtonType();
- addToToolset(mToolbarLeft->getCommandsList(),toolbar_set.left_toolbar);
+ toolbar_set.left_toolbar.button_display_mode = mToolbars[TOOLBAR_LEFT]->getButtonType();
+ addToToolset(mToolbars[TOOLBAR_LEFT]->getCommandsList(), toolbar_set.left_toolbar);
}
- if (mToolbarRight)
+ if (mToolbars[TOOLBAR_RIGHT])
{
- toolbar_set.right_toolbar.button_display_mode = mToolbarRight->getButtonType();
- addToToolset(mToolbarRight->getCommandsList(),toolbar_set.right_toolbar);
+ toolbar_set.right_toolbar.button_display_mode = mToolbars[TOOLBAR_RIGHT]->getButtonType();
+ addToToolset(mToolbars[TOOLBAR_RIGHT]->getCommandsList(), toolbar_set.right_toolbar);
}
- if (mToolbarBottom)
+ if (mToolbars[TOOLBAR_BOTTOM])
{
- toolbar_set.bottom_toolbar.button_display_mode = mToolbarBottom->getButtonType();
- addToToolset(mToolbarBottom->getCommandsList(),toolbar_set.bottom_toolbar);
+ toolbar_set.bottom_toolbar.button_display_mode = mToolbars[TOOLBAR_BOTTOM]->getButtonType();
+ addToToolset(mToolbars[TOOLBAR_BOTTOM]->getCommandsList(), toolbar_set.bottom_toolbar);
}
// Serialize the parameter tree
@@ -323,35 +393,122 @@ void LLToolBarView::addToToolset(command_id_list_t& command_list, Toolbar& toolb
}
}
-void LLToolBarView::draw()
+void LLToolBarView::onToolBarButtonAdded(LLView* button)
{
- //LLPanel* sizer_left = getChild<LLPanel>("sizer_left");
+ llassert(button);
- LLRect bottom_rect, left_rect, right_rect;
+ if (button->getName() == "speak")
+ {
+ // Add the "Speak" button as a control view in LLTransientFloaterMgr
+ // to prevent hiding the transient IM floater upon pressing "Speak".
+ LLTransientFloaterMgr::getInstance()->addControlView(button);
+
+ // Redock incoming and/or outgoing call windows, if applicable
+
+ LLFloater* incoming_floater = LLFloaterReg::getLastFloaterInGroup("incoming_call");
+ LLFloater* outgoing_floater = LLFloaterReg::getLastFloaterInGroup("outgoing_call");
+
+ if (incoming_floater && incoming_floater->isShown())
+ {
+ LLCallDialog* incoming = dynamic_cast<LLCallDialog *>(incoming_floater);
+ llassert(incoming);
+
+ LLDockControl* dock_control = incoming->getDockControl();
+ if (dock_control->getDock() == NULL)
+ {
+ incoming->dockToToolbarButton("speak");
+ }
+ }
+
+ if (outgoing_floater && outgoing_floater->isShown())
+ {
+ LLCallDialog* outgoing = dynamic_cast<LLCallDialog *>(outgoing_floater);
+ llassert(outgoing);
+
+ LLDockControl* dock_control = outgoing->getDockControl();
+ if (dock_control->getDock() == NULL)
+ {
+ outgoing->dockToToolbarButton("speak");
+ }
+ }
+ }
+ else if (button->getName() == "voice")
+ {
+ // Add the "Voice controls" button as a control view in LLTransientFloaterMgr
+ // to prevent hiding the transient IM floater upon pressing "Voice controls".
+ LLTransientFloaterMgr::getInstance()->addControlView(button);
+ }
+}
- if (mToolbarBottom)
+void LLToolBarView::onToolBarButtonRemoved(LLView* button)
+{
+ llassert(button);
+
+ if (button->getName() == "speak")
{
- mToolbarBottom->getParent()->reshape(mToolbarBottom->getParent()->getRect().getWidth(), mToolbarBottom->getRect().getHeight());
- mToolbarBottom->localRectToOtherView(mToolbarBottom->getLocalRect(), &bottom_rect, this);
+ LLTransientFloaterMgr::getInstance()->removeControlView(button);
+
+ // Undock incoming and/or outgoing call windows
+
+ LLFloater* incoming_floater = LLFloaterReg::getLastFloaterInGroup("incoming_call");
+ LLFloater* outgoing_floater = LLFloaterReg::getLastFloaterInGroup("outgoing_call");
+
+ if (incoming_floater && incoming_floater->isShown())
+ {
+ LLDockableFloater* incoming = dynamic_cast<LLDockableFloater *>(incoming_floater);
+ llassert(incoming);
+
+ LLDockControl* dock_control = incoming->getDockControl();
+ dock_control->setDock(NULL);
+ }
+
+ if (outgoing_floater && outgoing_floater->isShown())
+ {
+ LLDockableFloater* outgoing = dynamic_cast<LLDockableFloater *>(outgoing_floater);
+ llassert(outgoing);
+
+ LLDockControl* dock_control = outgoing->getDockControl();
+ dock_control->setDock(NULL);
+ }
}
- if (mToolbarLeft)
+ else if (button->getName() == "voice")
{
- mToolbarLeft->getParent()->reshape(mToolbarLeft->getRect().getWidth(), mToolbarLeft->getParent()->getRect().getHeight());
- mToolbarLeft->localRectToOtherView(mToolbarLeft->getLocalRect(), &left_rect, this);
+ LLTransientFloaterMgr::getInstance()->removeControlView(button);
}
- if (mToolbarRight)
+}
+
+void LLToolBarView::draw()
+{
+ LLRect toolbar_rects[TOOLBAR_COUNT];
+
+ for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++)
{
- mToolbarRight->getParent()->reshape(mToolbarRight->getRect().getWidth(), mToolbarRight->getParent()->getRect().getHeight());
- mToolbarRight->localRectToOtherView(mToolbarRight->getLocalRect(), &right_rect, this);
+ if (mToolbars[i])
+ {
+ LLLayoutStack::ELayoutOrientation orientation = LLToolBarEnums::getOrientation(mToolbars[i]->getSideType());
+
+ if (orientation == LLLayoutStack::HORIZONTAL)
+ {
+ mToolbars[i]->getParent()->reshape(mToolbars[i]->getParent()->getRect().getWidth(), mToolbars[i]->getRect().getHeight());
+ }
+ else
+ {
+ mToolbars[i]->getParent()->reshape(mToolbars[i]->getRect().getWidth(), mToolbars[i]->getParent()->getRect().getHeight());
+ }
+
+ mToolbars[i]->localRectToOtherView(mToolbars[i]->getLocalRect(), &toolbar_rects[i], this);
+ }
}
// Draw drop zones if drop of a tool is active
if (isToolDragged())
{
LLColor4 drop_color = LLUIColorTable::instance().getColor( "ToolbarDropZoneColor" );
- gl_rect_2d(bottom_rect, drop_color, TRUE);
- gl_rect_2d(left_rect, drop_color, TRUE);
- gl_rect_2d(right_rect, drop_color, TRUE);
+
+ for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++)
+ {
+ gl_rect_2d(toolbar_rects[i], drop_color, TRUE);
+ }
}
LLUICtrl::draw();
@@ -363,9 +520,9 @@ void LLToolBarView::draw()
// ----------------------------------------
-void LLToolBarView::startDragTool(S32 x, S32 y, LLToolBarButton* button)
+void LLToolBarView::startDragTool(S32 x, S32 y, LLToolBarButton* toolbarButton)
{
- resetDragTool(button);
+ resetDragTool(toolbarButton);
// Flag the tool dragging but don't start it yet
LLToolDragAndDrop::getInstance()->setDragStart( x, y );
@@ -391,9 +548,7 @@ BOOL LLToolBarView::handleDragTool( S32 x, S32 y, const LLUUID& uuid, LLAssetTyp
// 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->stopCommandInProgress(command_id);
gToolBarView->mDragStarted = true;
return TRUE;
@@ -424,10 +579,10 @@ BOOL LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t
{
// Suppress the command from the toolbars (including the one it's dropped in,
// this will handle move position).
- bool command_present = gToolBarView->hasCommand(command_id);
+ S32 old_toolbar_loc = gToolBarView->hasCommand(command_id);
LLToolBar* old_toolbar = NULL;
- if (command_present)
+ if (old_toolbar_loc != TOOLBAR_NONE)
{
llassert(gToolBarView->mDragToolbarButton);
old_toolbar = gToolBarView->mDragToolbarButton->getParentByType<LLToolBar>();
@@ -437,9 +592,8 @@ BOOL LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t
}
else
{
- gToolBarView->mToolbarBottom->removeCommand(command_id);
- gToolBarView->mToolbarLeft->removeCommand(command_id);
- gToolBarView->mToolbarRight->removeCommand(command_id);
+ int old_rank = LLToolBar::RANK_NONE;
+ gToolBarView->removeCommand(command_id, old_rank);
}
}
@@ -463,27 +617,29 @@ BOOL LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t
return handled;
}
-void LLToolBarView::resetDragTool(LLToolBarButton* button)
+void LLToolBarView::resetDragTool(LLToolBarButton* toolbarButton)
{
// Clear the saved command, toolbar and rank
gToolBarView->mDragStarted = false;
- gToolBarView->mDragToolbarButton = button;
+ gToolBarView->mDragToolbarButton = toolbarButton;
}
void LLToolBarView::setToolBarsVisible(bool visible)
{
- mToolbarBottom->getParent()->setVisible(visible);
- mToolbarLeft->getParent()->setVisible(visible);
- mToolbarRight->getParent()->setVisible(visible);
+ for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++)
+ {
+ mToolbars[i]->getParent()->setVisible(visible);
+ }
}
bool LLToolBarView::isModified() const
{
bool modified = false;
- modified |= mToolbarBottom->isModified();
- modified |= mToolbarLeft->isModified();
- modified |= mToolbarRight->isModified();
+ for (S32 i = TOOLBAR_FIRST; i <= TOOLBAR_LAST; i++)
+ {
+ modified |= mToolbars[i]->isModified();
+ }
return modified;
}
@@ -496,9 +652,11 @@ bool LLToolBarView::isModified() const
void handleLoginToolbarSetup()
{
// Open the destinations guide by default on first login, per Rhett
- if (gSavedSettings.getBOOL("FirstLoginThisInstall") || gAgent.isFirstLogin())
+ if (gSavedPerAccountSettings.getBOOL("DisplayDestinationsOnInitialRun") || gAgent.isFirstLogin())
{
LLFloaterReg::showInstance("destinations");
+
+ gSavedPerAccountSettings.setBOOL("DisplayDestinationsOnInitialRun", FALSE);
}
}
diff --git a/indra/newview/lltoolbarview.h b/indra/newview/lltoolbarview.h
index 2b26db3802..4307d10258 100644
--- a/indra/newview/lltoolbarview.h
+++ b/indra/newview/lltoolbarview.h
@@ -39,6 +39,19 @@ class LLUICtrlFactory;
class LLToolBarView : public LLUICtrl
{
public:
+ typedef enum
+ {
+ TOOLBAR_NONE = 0,
+ TOOLBAR_LEFT,
+ TOOLBAR_RIGHT,
+ TOOLBAR_BOTTOM,
+
+ TOOLBAR_COUNT,
+
+ TOOLBAR_FIRST = TOOLBAR_LEFT,
+ TOOLBAR_LAST = TOOLBAR_BOTTOM,
+ } EToolBarLocation;
+
// Xui structure of the toolbar panel
struct Params : public LLInitParam::Block<Params, LLUICtrl::Params> {};
@@ -52,6 +65,7 @@ public:
{
Mandatory<LLToolBarEnums::ButtonType> button_display_mode;
Multiple<LLCommandId::Params> commands;
+
Toolbar();
};
struct ToolbarSet : public LLInitParam::Block<ToolbarSet>
@@ -59,6 +73,7 @@ public:
Optional<Toolbar> left_toolbar,
right_toolbar,
bottom_toolbar;
+
ToolbarSet();
};
@@ -66,9 +81,16 @@ public:
virtual ~LLToolBarView();
virtual BOOL postBuild();
virtual void draw();
+
// Toolbar view interface with the rest of the world
- // Checks if the commandId is being used somewhere in one of the toolbars
- bool hasCommand(const LLCommandId& commandId) const;
+ // Checks if the commandId is being used somewhere in one of the toolbars, returns EToolBarLocation
+ S32 hasCommand(const LLCommandId& commandId) const;
+ S32 addCommand(const LLCommandId& commandId, EToolBarLocation toolbar, int rank = LLToolBar::RANK_NONE);
+ S32 removeCommand(const LLCommandId& commandId, int& rank); // Sets the rank the removed command was at, RANK_NONE if not found
+ S32 enableCommand(const LLCommandId& commandId, bool enabled);
+ S32 stopCommandInProgress(const LLCommandId& commandId);
+ S32 flashCommand(const LLCommandId& commandId, bool flash);
+
// Loads the toolbars from the existing user or default settings
bool loadToolbars(bool force_default = false); // return false if load fails
@@ -76,10 +98,10 @@ public:
static bool loadDefaultToolbars();
- static void startDragTool(S32 x, S32 y, LLToolBarButton* button);
+ static void startDragTool(S32 x, S32 y, LLToolBarButton* toolbarButton);
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);
+ static void resetDragTool(LLToolBarButton* toolbarButton);
bool isModified() const;
@@ -91,13 +113,14 @@ protected:
private:
void saveToolbars() const;
- bool addCommand(const LLCommandId& commandId, LLToolBar* toolbar);
+ bool addCommandInternal(const LLCommandId& commandId, LLToolBar* toolbar);
void addToToolset(command_id_list_t& command_list, Toolbar& toolbar) const;
+ static void onToolBarButtonAdded(LLView* button);
+ static void onToolBarButtonRemoved(LLView* button);
+
// Pointers to the toolbars handled by the toolbar view
- LLToolBar* mToolbarLeft;
- LLToolBar* mToolbarRight;
- LLToolBar* mToolbarBottom;
+ LLToolBar* mToolbars[TOOLBAR_COUNT];
bool mToolbarsLoaded;
bool mDragStarted;
diff --git a/indra/newview/lltransientfloatermgr.cpp b/indra/newview/lltransientfloatermgr.cpp
index c648a6a28a..3d68c10489 100644
--- a/indra/newview/lltransientfloatermgr.cpp
+++ b/indra/newview/lltransientfloatermgr.cpp
@@ -42,9 +42,9 @@ LLTransientFloaterMgr::LLTransientFloaterMgr()
&LLTransientFloaterMgr::leftMouseClickCallback, this, _2, _3, _4));
}
- mGroupControls.insert(std::pair<ETransientGroup, std::set<LLView*> >(GLOBAL, std::set<LLView*>()));
- mGroupControls.insert(std::pair<ETransientGroup, std::set<LLView*> >(DOCKED, std::set<LLView*>()));
- mGroupControls.insert(std::pair<ETransientGroup, std::set<LLView*> >(IM, std::set<LLView*>()));
+ mGroupControls.insert(std::pair<ETransientGroup, controls_set_t >(GLOBAL, controls_set_t()));
+ mGroupControls.insert(std::pair<ETransientGroup, controls_set_t >(DOCKED, controls_set_t()));
+ mGroupControls.insert(std::pair<ETransientGroup, controls_set_t >(IM, controls_set_t()));
}
void LLTransientFloaterMgr::registerTransientFloater(LLTransientFloater* floater)
@@ -59,12 +59,16 @@ void LLTransientFloaterMgr::unregisterTransientFloater(LLTransientFloater* float
void LLTransientFloaterMgr::addControlView(ETransientGroup group, LLView* view)
{
- mGroupControls.find(group)->second.insert(view);
+ if (!view) return;
+
+ mGroupControls.find(group)->second.insert(view->getHandle());
}
void LLTransientFloaterMgr::removeControlView(ETransientGroup group, LLView* view)
{
- mGroupControls.find(group)->second.erase(view);
+ if (!view) return;
+
+ mGroupControls.find(group)->second.erase(view->getHandle());
}
void LLTransientFloaterMgr::addControlView(LLView* view)
@@ -89,7 +93,7 @@ void LLTransientFloaterMgr::hideTransientFloaters(S32 x, S32 y)
{
ETransientGroup group = floater->getGroup();
- bool hide = isControlClicked(mGroupControls.find(group)->second, x, y);
+ bool hide = isControlClicked(group, mGroupControls.find(group)->second, x, y);
if (hide)
{
floater->setTransientVisible(FALSE);
@@ -98,13 +102,25 @@ void LLTransientFloaterMgr::hideTransientFloaters(S32 x, S32 y)
}
}
-bool LLTransientFloaterMgr::isControlClicked(std::set<LLView*>& set, S32 x, S32 y)
+bool LLTransientFloaterMgr::isControlClicked(ETransientGroup group, controls_set_t& set, S32 x, S32 y)
{
+ std::list< LLHandle<LLView> > dead_handles;
+
bool res = true;
for (controls_set_t::iterator it = set.begin(); it
!= set.end(); it++)
{
- LLView* control_view = *it;
+ LLView* control_view = NULL;
+
+ LLHandle<LLView> handle = *it;
+ if (handle.isDead())
+ {
+ dead_handles.push_back(handle);
+ continue;
+ }
+
+ control_view = handle.get();
+
if (!control_view->getVisible())
{
continue;
@@ -118,6 +134,13 @@ bool LLTransientFloaterMgr::isControlClicked(std::set<LLView*>& set, S32 x, S32
break;
}
}
+
+ for (std::list< LLHandle<LLView> >::iterator it = dead_handles.begin(); it != dead_handles.end(); ++it)
+ {
+ LLHandle<LLView> handle = *it;
+ mGroupControls.find(group)->second.erase(handle);
+ }
+
return res;
}
@@ -130,8 +153,8 @@ void LLTransientFloaterMgr::leftMouseClickCallback(S32 x, S32 y,
return;
}
- bool hide = isControlClicked(mGroupControls.find(DOCKED)->second, x, y)
- && isControlClicked(mGroupControls.find(GLOBAL)->second, x, y);
+ bool hide = isControlClicked(DOCKED, mGroupControls.find(DOCKED)->second, x, y)
+ && isControlClicked(GLOBAL, mGroupControls.find(GLOBAL)->second, x, y);
if (hide)
{
hideTransientFloaters(x, y);
diff --git a/indra/newview/lltransientfloatermgr.h b/indra/newview/lltransientfloatermgr.h
index 2919244121..b4611c8c87 100644
--- a/indra/newview/lltransientfloatermgr.h
+++ b/indra/newview/lltransientfloatermgr.h
@@ -56,14 +56,15 @@ public:
void removeControlView(LLView* view);
private:
+ typedef std::set<LLHandle<LLView> > controls_set_t;
+ typedef std::map<ETransientGroup, controls_set_t > group_controls_t;
+
void hideTransientFloaters(S32 x, S32 y);
void leftMouseClickCallback(S32 x, S32 y, MASK mask);
- bool isControlClicked(std::set<LLView*>& set, S32 x, S32 y);
-private:
+ bool isControlClicked(ETransientGroup group, controls_set_t& set, S32 x, S32 y);
+
std::set<LLTransientFloater*> mTransSet;
- typedef std::set<LLView*> controls_set_t;
- typedef std::map<ETransientGroup, std::set<LLView*> > group_controls_t;
group_controls_t mGroupControls;
};
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
{
+ public:
+
+ /**
+ * 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);
+
protected:
- TranslationReceiver(const std::string &from_lang, const std::string &to_lang)
- : m_fromLang(from_lang),
- m_toLang(to_lang)
- {
- }
+ friend class LLTranslate;
- virtual void handleResponse(const std::string &translation, const std::string &recognized_lang) {};
- virtual void handleFailure() {};
+ /// 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);
+ /// Override point to handle successful translation.
+ virtual void handleResponse(const std::string &translation, const std::string &recognized_lang) = 0;
+
+ /// Override point to handle unsuccessful translation.
+ virtual void handleFailure(int status, const std::string& err_msg) = 0;
+
+ std::string mFromLang;
+ std::string mToLang;
+ const LLTranslationAPIHandler& mHandler;
+ };
+
+ /**
+ * Subclasses are supposed to handle API key verification result.
+ */
+ class KeyVerificationReceiver: public LLHTTPClient::Responder
+ {
public:
- ~TranslationReceiver()
- {
- }
-
- 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();
-
- const std::string result = strstrm.str();
- std::string translation;
- std::string detected_language;
-
- 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;","'");
-
- handleResponse(translation, detected_language);
- }
- else
- {
- LL_WARNS("Translate") << "HTTP request for Google Translate failed with status " << status << ", reason: " << reason << LL_ENDL;
- handleFailure();
- }
- }
+ 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;
+ typedef boost::intrusive_ptr<TranslationReceiver> TranslationReceiverPtr;
+ typedef boost::intrusive_ptr<KeyVerificationReceiver> KeyVerificationReceiverPtr;
+
+ /**
+ * 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);
+
+ /**
+ * 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();
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);
-
- 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;
-
- static const char* m_GoogleData;
- static const char* m_GoogleTranslation;
- static const char* m_GoogleLanguage;
+ 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..22d95563d8 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 );
@@ -7962,6 +7970,9 @@ void initialize_menus()
view_listener_t::addEnable(new LLUploadCostCalculator(), "Upload.CalculateCosts");
+
+ commit.add("Inventory.NewWindow", boost::bind(&LLFloaterInventory::showAgentInventory));
+
// Agent
commit.add("Agent.toggleFlying", boost::bind(&LLAgent::toggleFlying));
enable.add("Agent.enableFlying", boost::bind(&LLAgent::enableFlying));
@@ -8337,6 +8348,8 @@ void initialize_menus()
view_listener_t::addMenu(new LLGoToObject(), "GoToObject");
commit.add("PayObject", boost::bind(&handle_give_money_dialog));
+ commit.add("Inventory.NewWindow", boost::bind(&LLFloaterInventory::showAgentInventory));
+
enable.add("EnablePayObject", boost::bind(&enable_pay_object));
enable.add("EnablePayAvatar", boost::bind(&enable_pay_avatar));
enable.add("EnableEdit", boost::bind(&enable_object_edit));
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 d81e67bfe2..d81e67bfe2 100644..100755
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
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/textures/windows/Flyout_Left.png b/indra/newview/skins/default/textures/windows/Flyout_Left.png
new file mode 100644
index 0000000000..6ac9fe2efd
--- /dev/null
+++ b/indra/newview/skins/default/textures/windows/Flyout_Left.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/windows/Flyout_Right.png b/indra/newview/skins/default/textures/windows/Flyout_Right.png
new file mode 100644
index 0000000000..aa1f0625aa
--- /dev/null
+++ b/indra/newview/skins/default/textures/windows/Flyout_Right.png
Binary files differ
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/inspect_group.xml b/indra/newview/skins/default/xui/de/inspect_group.xml
index d85ca7ce4d..60fa8ff0d8 100644
--- a/indra/newview/skins/default/xui/de/inspect_group.xml
+++ b/indra/newview/skins/default/xui/de/inspect_group.xml
@@ -26,7 +26,7 @@ Hoch solln sie leben! Elche forever! Und auch Mungos!
<text name="group_cost">
Mitgliedschaft: 123 L$
</text>
- <button label="Zusammen" name="join_btn"/>
+ <button label="Beitreten" name="join_btn"/>
<button label="Verlassen" name="leave_btn"/>
<button label="Profil anzeigen" name="view_profile_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
index 5c8b8302c8..979ccba48d 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -16,7 +16,7 @@
<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.item label="甇擃銝剜 (Traditionelles Chinesisch) Beta" name="Traditional Chinese"/>
</combo_box>
<text name="language_textbox2">
(Erfordert Neustart)
diff --git a/indra/newview/skins/default/xui/en/floater_chat_bar.xml b/indra/newview/skins/default/xui/en/floater_chat_bar.xml
index 989b4a0580..87606c1a2a 100644
--- a/indra/newview/skins/default/xui/en/floater_chat_bar.xml
+++ b/indra/newview/skins/default/xui/en/floater_chat_bar.xml
@@ -15,6 +15,7 @@
min_height="60"
min_width="150"
can_resize="true"
+ default_tab_group="1"
name="chat_bar"
width="380">
<panel
@@ -26,50 +27,56 @@
visible="false"
filename="panel_nearby_chat.xml"
name="nearby_chat" />
- <panel width="380" height="31" left="0" bottom="-1" follows="left|right|bottom">
- <line_editor
- border_style="line"
- border_thickness="1"
- follows="left|right"
- height="23"
- label="Click here to chat."
- layout="topleft"
- left_delta="7"
- left="0"
- max_length_bytes="1023"
- name="chat_box"
- text_pad_left="5"
- text_pad_right="25"
- tool_tip="Press Enter to say, Ctrl+Enter to shout"
- top="2"
- width="335" />
- <output_monitor
- auto_update="true"
- follows="right"
- draw_border="false"
- height="16"
- layout="topleft"
- left_pad="-24"
- mouse_opaque="true"
- name="chat_zone_indicator"
- top="6"
- visible="true"
- width="20" />
- <button
- follows="right"
- is_toggle="true"
- width="20"
- top="2"
- layout="topleft"
- left_pad="12"
- image_disabled="ComboButton_UpOff"
- image_unselected="ComboButton_UpOff"
- image_selected="ComboButton_On"
- image_pressed="ComboButton_UpSelected"
- image_pressed_selected="ComboButton_Selected"
- height="23"
- name="show_nearby_chat"
- tool_tip="Shows/hides nearby chat log">
- </button>
+ <panel width="380"
+ height="31"
+ left="0"
+ bottom="-1"
+ follows="left|right|bottom"
+ tab_group="1">
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|right"
+ height="23"
+ label="Click here to chat."
+ layout="topleft"
+ left_delta="7"
+ left="0"
+ max_length_bytes="1023"
+ name="chat_box"
+ text_pad_left="5"
+ text_pad_right="25"
+ tool_tip="Press Enter to say, Ctrl+Enter to shout"
+ top="2"
+ width="335" />
+ <output_monitor
+ auto_update="true"
+ follows="right"
+ draw_border="false"
+ height="16"
+ layout="topleft"
+ left_pad="-24"
+ mouse_opaque="true"
+ name="chat_zone_indicator"
+ top="6"
+ visible="true"
+ width="20" />
+ <button
+ follows="right"
+ is_toggle="true"
+ width="20"
+ top="2"
+ layout="topleft"
+ left_pad="12"
+ image_disabled="ComboButton_UpOff"
+ image_unselected="ComboButton_UpOff"
+ image_selected="ComboButton_On"
+ image_pressed="ComboButton_UpSelected"
+ image_pressed_selected="ComboButton_Selected"
+ height="23"
+ chrome="true"
+ name="show_nearby_chat"
+ tool_tip="Shows/hides nearby chat log">
+ </button>
</panel>
</floater>
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 fbaf4f0a8a..fbaf4f0a8a 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_outgoing_call.xml b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
index 9db6568ee3..ffbb6aa28b 100644
--- a/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/en/floater_outgoing_call.xml
@@ -8,6 +8,7 @@
layout="topleft"
name="outgoing call"
help_topic="outgoing_call"
+ save_dock_state="true"
title="CALLING"
width="410">
<floater.string
diff --git a/indra/newview/skins/default/xui/en/floater_toybox.xml b/indra/newview/skins/default/xui/en/floater_toybox.xml
index c7e09bf45e..ef3951a1cd 100644
--- a/indra/newview/skins/default/xui/en/floater_toybox.xml
+++ b/indra/newview/skins/default/xui/en/floater_toybox.xml
@@ -13,7 +13,7 @@
open_positioning="centered"
save_rect="true"
single_instance="true"
- title="CUSTOMIZE TOOLBARS"
+ title="TOOLBAR BUTTONS"
width="650">
<text
follows="left|top"
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 93a04050b6..6807b01fa3 100644
--- a/indra/newview/skins/default/xui/en/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/en/floater_voice_controls.xml
@@ -89,7 +89,7 @@
visible="true"
width="20" />
</layout_panel>
- <layout_panel name="leave_call_panel" height="26" auto_resize="false">
+ <layout_panel name="leave_call_panel" height="26" min_height="26" user_resize="false" auto_resize="false">
<layout_stack
clip="true"
follows="left|top|right"
diff --git a/indra/newview/skins/default/xui/en/inspect_remote_object.xml b/indra/newview/skins/default/xui/en/inspect_remote_object.xml
index ef3dd844cd..e83257d2a0 100644
--- a/indra/newview/skins/default/xui/en/inspect_remote_object.xml
+++ b/indra/newview/skins/default/xui/en/inspect_remote_object.xml
@@ -36,7 +36,7 @@
height="16"
left="8"
name="object_owner_label"
- width="55"
+ width="65"
top_pad="12">
Owner:
</text>
diff --git a/indra/newview/skins/default/xui/en/menu_toolbars.xml b/indra/newview/skins/default/xui/en/menu_toolbars.xml
index 59912b5503..7384114d7d 100644
--- a/indra/newview/skins/default/xui/en/menu_toolbars.xml
+++ b/indra/newview/skins/default/xui/en/menu_toolbars.xml
@@ -3,7 +3,7 @@
layout="topleft"
name="Toolbars Popup"
visible="false">
- <menu_item_call label="Choose buttons..."
+ <menu_item_call label="Toolbar buttons..."
layout="topleft"
name="Chose Buttons">
<menu_item_call.on_click function="Floater.Show"
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 63e50b0b9f..9c44d90a6e 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -43,6 +43,15 @@
function="Floater.Toggle"
parameter="inventory" />
</menu_item_check>
+ <menu_item_call
+ label="New Inventory Window"
+ name="NewInventoryWindow"
+ shortcut="control|shift|I"
+ visible="false">
+ <menu_item_call.on_click
+ function="Inventory.NewWindow"
+ parameter="" />
+ </menu_item_call>
<menu_item_check
label="Gestures..."
name="Gestures"
@@ -166,7 +175,7 @@
parameter="preferences" />
</menu_item_call>
<menu_item_call
- label="Toolbars..."
+ label="Toolbar buttons..."
name="Toolbars"
shortcut="control|T">
<menu_item_call.on_click
@@ -2437,6 +2446,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/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/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
index 0a1c0872e9..4079a80924 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
@@ -92,7 +92,7 @@
value="ja" />
<combo_box.item
enabled="true"
- label="甇擃 (Traditional Chinese) - Beta"
+ label="甇擃銝剜 (Traditional Chinese) - Beta"
name="Traditional Chinese"
value="zh" />
</combo_box>
diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml
index 422bbada7f..3239c4e531 100644
--- a/indra/newview/skins/default/xui/en/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml
@@ -2,7 +2,7 @@
<panel
background_opaque="true"
background_visible="true"
- bg_opaque_color="MouseGray"
+ bg_opaque_color="DkGray"
chrome="true"
follows="top|right"
height="19"
@@ -39,10 +39,7 @@
width="160"
top="1"
follows="right|top"
- name="balance_bg"
- bg_visible="true"
- background_opaque="true"
- bg_opaque_image="bevel_background">
+ name="balance_bg">
<text
halign="center"
font="SansSerifSmall"
diff --git a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml
index 79f29777ce..fc527f5f9d 100644
--- a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml
@@ -4,7 +4,7 @@
background_opaque="false"
bg_opaque_color="Black_50"
bg_alpha_color="Black_50"
- follows="left|top|right"
+ follows="left|top"
height="19"
layout="topleft"
name="topinfo_bar"
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index c4031de0f8..ec230773cc 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -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 -->
@@ -2269,7 +2271,7 @@ Returns a string with the requested data about the region
<string name="NextStipendDay" value="The next stipend day is " />
<string name="GroupPlanningDate">[mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc]</string>
<string name="GroupIndividualShare" value=" Group Individual Share" />
- <string name="GroupColumn" value=" Group" />
+ <string name="GroupColumn" value=" Group" />
<string name="Balance">Balance</string>
<string name="Credits">Credits</string>
<string name="Debits">Debits</string>
@@ -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>
@@ -3705,6 +3711,10 @@ Try enclosing path to the editor with double quotes.
<string name="Command_View_Tooltip">Changing camera angle</string>
<string name="Command_Voice_Tooltip">Volume controls for calls and people near you in world</string>
+ <string name="Toolbar_Bottom_Tooltip">currently in your bottom toolbar</string>
+ <string name="Toolbar_Left_Tooltip" >currently in your left toolbar</string>
+ <string name="Toolbar_Right_Tooltip" >currently in your right toolbar</string>
+
<!-- Mesh UI terms -->
<string name="Retain%">Retain%</string>
<string name="Detail">Detail</string>
diff --git a/indra/newview/skins/default/xui/en/widgets/toolbar.xml b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
index 7e7a9c61cf..0aa478ace9 100644
--- a/indra/newview/skins/default/xui/en/widgets/toolbar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/toolbar.xml
@@ -30,6 +30,8 @@
image_overlay_alignment="left"
use_ellipses="true"
auto_resize="true"
+ button_flash_count="99999"
+ button_flash_rate="1.0"
flash_color="EmphasisColor"/>
<button_icon pad_left="10"
pad_right="10"
@@ -49,5 +51,7 @@
chrome="true"
use_ellipses="true"
auto_resize="true"
+ button_flash_count="99999"
+ button_flash_rate="1.0"
flash_color="EmphasisColor"/>
</toolbar>
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="CMO"/>
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">
[REGIN](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">
- ATENCIN:
- </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: [TRINGULOS]
+ <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..4fc163f5b6 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/fr/panel_preferences_general.xml b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
index dd4c1c9f63..66b84af3aa 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
@@ -16,7 +16,7 @@
<combo_box.item label="郕邽邿 (Russe) - B礙ta" name="Russian"/>
<combo_box.item label="T羹rk癟e (Turc) - B礙ta" name="Turkish"/>
<combo_box.item label="交祈 (Japonais) - B礙ta" name="(Japanese)"/>
- <combo_box.item label="甇擃 (Chinois traditionnel) - B礙ta" name="Traditional Chinese"/>
+ <combo_box.item label="甇擃銝剜 (Chinois traditionnel) - B礙ta" name="Traditional Chinese"/>
</combo_box>
<text name="language_textbox2">
(red矇marrage requis)
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 4f52105404..90a833471c 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
@@ -16,7 +16,7 @@
<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.item label="甇擃銝剜 (Cinese tradizionale) - Beta" name="Traditional Chinese"/>
</combo_box>
<text name="language_textbox2">
(Richiede il riavvio)
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="U踴潦怒"/>
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="U怒U准潦">
- <string name="status_idle">
- 敺璈嗆
- </string>
+<floater name="Model Preview" title="U怒艾嗚潦">
+ <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 隞格臬U怒柴萸颯扼胯整
+ </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="研乓潸”蝷箝夏OD閮剖">
- <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">
- 柴U怒 Second Life 萸潦潦怒U准潦具胯扼整∼瑯乓U怒柴U准潦怒扎艾 [[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">
- 銝閫敶U桅摨行
- </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">
+ U怠嚗
</text>
- <text name="queue_mode_text">
- 准乓潦U潦嚗
+ <text name="model_category_label">
+ 柴U怒...
</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="U踴潦桀耦" name="Avatar shape"/>
+ <combo_item label="U踴潦柴U踴∼喋" 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">
- 憓蝺U潦嚗
- </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">
+ 銝閫敶g[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">
- 銝閫敶g [TRIANGLES]
+ <panel label="U准潦柴芥瑯扼" 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">
+ U踴潦U怠剁
</text>
+ <check_box label="嫘准喋桅怒" name="upload_skin"/>
+ <check_box label="詻扼扎喋詻瑯扼喋怒" name="upload_joints"/>
+ <text name="pelvis_offset_label">
+ Z 芥颯嚗U踴潦銝銝隤踵湛嚗
+ </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="U准潦" name="ok_btn" tool_tip="瑯乓研潦踴潦怒U准潦"/>
+ <button label="閮剖胯芥U艾押潦芥颯" name="reset_btn"/>
+ <text name="upload_fee">
+ U准潦嚗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">
+ ∼瑯乓U怒U准潦璅拙押整璅拙押桀敺寞怒扎艾 [[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">
- U准潦嚗L$ [FEE]
+ </panel>
+ <text name="lod_label">
+ 研乓潘
</text>
- <button label="押怒怨身摰" name="reset_btn" tool_tip="押怒怨身摰"/>
- <button label="艾扼扎冽株蝞" name="calculate_btn" tool_tip="艾扼扎冽株蝞"/>
- <button label="U准潦" name="ok_btn" tool_tip="瑯乓研潦踴潦怒U准潦"/>
- <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">
U怒∼扎怒豢
</text>
</panel>
- <panel name="choose_file_content_panel">
+ <panel name="content">
<text name="advanced_users_text">
銝蝝艾潦嗚潦桀游嚗3D 喋喋喋桀嗡潦怒雿踴嫘胯擃摨艾芥U准潦潦閰艾
</text>
<button label="U喋嫘U潦怠踴" name="switch_to_advanced"/>
- <text name="choose_model_file_label">
+ <text name="Cache location">
U准潦U怒∼扎怒桅豢
</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">
U怒拙
</text>
</panel>
- <text name="optimize_hint">
+ <text name="description">
押潦喋嫘閬艾U怒拙整敹閬怠西矽氬艾
</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">
U怒桀畾餅柴瑯扼扎臬蝷整雿整U怒桃桃怠艾瑯扼扎株底蝝啣漲隤踵氬艾
</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">
- 靘嚗
-撠芷甇U芥詻扼胯
-瘥頛閰喟敦摨艾桐芥詻扼胯
-瑯喋怒芸振
- </text>
- <text name="physics_example_3">
- 靘嚗
-甇U芥詻扼胯
-閰喟敦芥芥詻扼胯
-撱箇
- </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">
U准潦摰鈭
</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啜 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="撌艾嚗撌衣W啜 A 潦嚗"/>
<joystick_slide name="move left btn" tool_tip="撌艾急酋嚗Shift + 撌衣W啜 A 潦嚗"/>
- <button label="" label_selected="" name="move down btn" tool_tip="銝怎宏嚗C 潦嚗"/>
<button label="" label_selected="" name="turn right btn" tool_tip="喋嚗喟W啜 D 潦嚗"/>
<joystick_slide name="move right btn" tool_tip="喋急酋嚗Shift + 喟W啜 D 潦嚗"/>
<joystick_turn name="forward btn" tool_tip="恍脯嚗銝W啜 W 潦嚗"/>
<joystick_turn name="backward btn" tool_tip="敺急酋嚗銝W啜 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="甇抵U潦"/>
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="U喋" 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="拍敶Y嗚湔" 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">
+ 潦怒潦株身摰怠艾踴喋臭誑銝柴怨”蝷箝U扎喋喋柴踴扯”蝷箝整
+ </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="U扎喋喋具押" name="icons_with_text"/>
+ <menu_item_check label="U扎喋喋柴" 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="扎U怒艾喋" name="Manage My Account">
+ <menu_item_call label="扎U怒艾喋..." 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="蝘柴U∼潦瑯扼喋甇U" 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="U踴潦柴研喋芥喋啜喋嫘銵函內" name="Avatar Rendering Cost"/>
+ <menu_item_check label="U踴潦格颯艾扼扎銵函內" 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
@@ -1953,6 +1953,12 @@ Adult 撠具芥潦詻扼喋怠乓怒胯雿鈭箝柴U怒艾喋撟湧耦蝣
蝯鈭具艾整蝬整嚗
<usetemplate ignoretext="蝯鈭桃Ⅱ隤" name="okcancelignore" notext="蝯鈭芥" yestext="蝯鈭"/>
</notification>
+ <notification name="ConfirmRestoreToybox">
+ 押怒柴踴喋具潦怒潦敺拙整嚗
+
+格雿臬急颯整
+ <usetemplate name="okcancelbuttons" notext="瘨" yestext="OK"/>
+ </notification>
<notification name="DeleteItems">
[QUESTION]
<usetemplate ignoretext="U扎扎桃Ⅱ隤" name="okcancelignore" notext="瘨" yestext="OK"/>
@@ -3041,10 +3047,6 @@ M 准潦潦血氬整
<button name="cancel" text="瘨"/>
</form>
</notification>
- <notification label="" name="ModeChange">
- U潦憭氬怒舐鈭血韏瑕敹閬整
- <usetemplate name="okcancelbuttons" notext="蝯鈭芥" yestext="蝯鈭"/>
- </notification>
<notification label="" name="NoClassifieds">
胯押瑯∼扎摨桐函楊胯U喋嫘U潦扼柴踹拍具扼整蝯鈭艾U潦憭氬整嚗U潦胯准啜扎喟駁U折豢扼整
<usetemplate name="okcancelbuttons" notext="蝯鈭芥" yestext="蝯鈭"/>
@@ -3089,6 +3091,10 @@ M 准潦潦血氬整
璊蝝U胯U喋嫘U潦扼柴踹拍具扼整准啜U艾艾U潦憭氬整嚗
<usetemplate name="okcancelbuttons" notext="蝯鈭芥" yestext="蝯鈭"/>
</notification>
+ <notification label="" name="ConfirmHideUI">
+ 格雿怒具艾柴∼乓潮柴具踴喋銵函內怒芥整唾”蝷箝怒 [SHORTCUT] 銝摨艾胯芥胯艾
+ <usetemplate ignoretext="UI 銵函內怒怎Ⅱ隤" name="okcancelignore" notext="瘨" yestext="OK"/>
+ </notification>
<global name="UnsupportedGLRequirements">
[APP_NAME] 怠閬芥潦艾扼U芥扼 [APP_NAME] 怒胯怒胯嫘萸潦 OpenGL 啜押胯怒潦敹閬扼 雿踴柴啜押胯怒潦格啜押扎扎喋嫘潦怒艾押芥研潦喋啜瑯嫘柴萸潦嫘胯具乓艾蝣箄
diff --git a/indra/newview/skins/default/xui/ja/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/ja/panel_chiclet_bar.xml
new file mode 100644
index 0000000000..6717ba9ba3
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/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="隡閰"/>
+ </chiclet_im_well>
+ </layout_panel>
+ <layout_panel name="notification_well_panel">
+ <chiclet_notification name="notification_well">
+ <button name="Unread" tool_tip=""/>
+ </chiclet_notification>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_me.xml b/indra/newview/skins/default/xui/ja/panel_me.xml
index dda5bc0009..896bbff0ee 100644
--- a/indra/newview/skins/default/xui/ja/panel_me.xml
+++ b/indra/newview/skins/default/xui/ja/panel_me.xml
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label=" 准潦" name="panel_me">
- <tab_container name="tabs">
- <panel label=" 准潦" name="panel_profile"/>
- <panel label=" " name="panel_picks"/>
- </tab_container>
+ <panel label=" " name="panel_picks"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml b/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml
index 0426c4fe9a..51402b2e00 100644
--- a/indra/newview/skins/default/xui/ja/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/ja/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="桀湔豢颯整"/>
- <pull_button name="forward_btn" tool_tip="甈∼桀湔賊脯踴整"/>
- <button name="home_btn" tool_tip="潦怒研潦"/>
- <location_input label="湔" name="location_combo"/>
- <search_combo_box label="璊蝝" name="search_combo_box" tool_tip="璊蝝">
- <combo_editor label="[SECOND_LIFE] 璊蝝g" name="search_combo_editor"/>
- </search_combo_box>
- </panel>
- <favorites_bar name="favorite" tool_tip="押喋潦胯怒押啜艾Second Life柴瘞怠乓桀湔怎押U胯颯對">
- <label name="favorites_bar_label" tool_tip="押喋潦胯怒押啜艾Second Life柴瘞怠乓桀湔怎押U胯颯對">
- 瘞怠乓
- </label>
- <chevron_button name="&gt;&gt;" tool_tip="瘞怠乓刻”蝷"/>
- </favorites_bar>
+ <layout_stack name="nvp_stack">
+ <layout_panel name="navigation_layout_panel">
+ <panel name="navigation_panel">
+ <pull_button name="back_btn" tool_tip="桀湔"/>
+ <pull_button name="forward_btn" tool_tip="甈∼桀湔"/>
+ <button name="home_btn" tool_tip="潦怒研潦整"/>
+ <location_input label="典" name="location_combo"/>
+ </panel>
+ </layout_panel>
+ <layout_panel name="favorites_layout_panel">
+ <favorites_bar name="favorite" tool_tip="押喋潦胯怒押啜艾Second Life柴瘞怠乓桀湔怎押U胯颯對">
+ <label name="favorites_bar_label" tool_tip="押喋潦胯怒押啜艾Second Life柴瘞怠乓桀湔怎押U胯颯對">
+ 瘞怠乓
+ </label>
+ <more_button name="&gt;&gt;" tool_tip="瘞怠乓刻”蝷">
+ 閰喟敦
+ </more_button>
+ </favorites_bar>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml b/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml
new file mode 100644
index 0000000000..4334659557
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="nearby_chat">
+ <check_box label="蝧餉迅嚗Google蝧餉迅嚗" name="translate_chat_checkbox"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
index 20e17de5f1..c8584ccaae 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
@@ -51,7 +51,7 @@
<combo_box.item label="郕邽邿嚗准瑯Z嚗" name="Russian"/>
<combo_box.item label="T羹rk癟e嚗怒唾嚗" name="Turkish"/>
<combo_box.item label="苺郕訄郇郕訄嚗艾胯押扎隤嚗" name="Ukrainian"/>
- <combo_box.item label="銝剜 (甇擃)嚗銝剖質嚗" name="Chinese"/>
+ <combo_box.item label="銝剜 (甇擃) (Chinese)" name="Chinese"/>
<combo_box.item label="交祈" name="Japanese"/>
<combo_box.item label="窱原湛質嚗" name="Korean"/>
</combo_box>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
index 4356f3d47f..1bafa52fbe 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -13,7 +13,10 @@
<combo_box.item label="Italiano 嚗扎踴芥Z嚗 - 潦" name="Italian"/>
<combo_box.item label="Polski 嚗潦押喋隤嚗 - 潦" name="Polish"/>
<combo_box.item label="Portugu礙s嚗怒研怨嚗 - 潦" name="Portugese"/>
+ <combo_box.item label="郕邽邿 嚗准瑯Z嚗 - 潦" name="Russian"/>
+ <combo_box.item label="T羹rk癟e 嚗怒唾嚗 - 潦" name="Turkish"/>
<combo_box.item label="交祈 潦" name="(Japanese)"/>
+ <combo_box.item label="甇擃銝剜 嚗銝剖質 - 蝜雿摮嚗 - 潦" name="Traditional Chinese"/>
</combo_box>
<text name="language_textbox2">
嚗韏瑕敺怠嚗
@@ -48,7 +51,6 @@
<check_box label="啜怒潦踴扎" name="show_all_title_checkbox1" tool_tip="芥萸潦整胯∼喋潦芥押啜怒潦踴扎怒銵函內"/>
<check_box label="研喋扎押扎銵函內" name="show_friends" tool_tip="研喋桀扎押扎銵函內"/>
<check_box label="銵函內銵函內" name="display_names_check" tool_tip="豢具IM 芥押扯”蝷箏銵函內整"/>
- <check_box label="乓潦胯 UI 喋嫘怒" name="viewer_hints_check"/>
<text name="inworld_typing_rg_label">
摮准潦潦行活格雿嚗
</text>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_move.xml b/indra/newview/skins/default/xui/ja/panel_preferences_move.xml
index 806bcfc14a..121bebfd52 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_move.xml
@@ -7,18 +7,33 @@
</text>
<check_box label="嗡餌楊" name="edit_camera_movement" tool_tip="蝺券U潦柴芥喋颯芥桀踴怒芸怒∼押詻瑯扼喋雿踴整"/>
<check_box label="摰孵尿" name="appearance_camera_movement" tool_tip="蝺券U潦怠乓具怒芸怒∼押詻瑯扼喋雿踴整"/>
- <check_box initial_value="true" label="萸扎" name="appearance_sidebar_positioning" tool_tip="萸扎潦怨芸怒∼押詻瑯扼喋雿踴整"/>
+ <text name="keyboard_lbl">
+ 准潦潦嚗
+ </text>
+ <check_box label="撣詻怒准潭雿批怒" name="arrow_keys_move_avatar_check"/>
+ <check_box label="銝W啜准2摨行潦+瑟潦扯粥" name="tap_tap_hold_to_run"/>
+ <text name="mouse_lbl">
+ 艾對
+ </text>
<check_box label="銝鈭箇妍閬嫘扯”蝷箝" name="first_person_avatar_visible"/>
<text name=" Mouse Sensitivity">
銝鈭箇妍閬嫘柴艾嫘格摨佗
</text>
<check_box label="踴" name="invert_mouse"/>
- <check_box label="撣詻怒准潭雿批怒" name="arrow_keys_move_avatar_check"/>
- <check_box label="銝W啜准2摨行潦+瑟潦扯粥" name="tap_tap_hold_to_run"/>
- <check_box label="怒胯芥胯扳活格雿嚗" name="double_click_chkbox"/>
- <radio_group name="double_click_action">
- <radio_item label="研潦" name="radio_teleport"/>
- <radio_item label="芸餈質楚" name="radio_autopilot"/>
- </radio_group>
+ <text name="single_click_action_lbl">
+ 啜瑯喋啜怒胯芥荔
+ </text>
+ <combo_box name="single_click_action_combo">
+ <combo_box.item label="雿芥" name="0"/>
+ <combo_box.item label="胯芥胯啁嫘怎宏" name="1"/>
+ </combo_box>
+ <text name="double_click_action_lbl">
+ 啜怒胯芥荔
+ </text>
+ <combo_box name="double_click_action_combo">
+ <combo_box.item label="雿芥" name="0"/>
+ <combo_box.item label="胯芥胯啁嫘怎宏" name="1"/>
+ <combo_box.item label="胯芥胯啁嫘怒研潦" name="2"/>
+ </combo_box>
<button label="桐柴扎" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_status_bar.xml b/indra/newview/skins/default/xui/ja/panel_status_bar.xml
index 35c1148cc1..93689b81af 100644
--- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml
@@ -18,11 +18,8 @@
<panel name="balance_bg">
<text name="balance" tool_tip="胯芥胯 L$ 畾擃湔" value="L$20"/>
<button label="L$ 株頃" name="buyL" tool_tip="胯芥胯 L$ 鞈澆乓整"/>
+ <button label="摨" name="goShop" tool_tip="Second Life 潦晞研扎嫘"/>
</panel>
- <combo_box name="mode_combo" tool_tip="U潦豢整潦瑯胯U潦扼舀Y揣啜蝪∪怠銵扼U喋嫘U潦扼胯憭格賬拍具扼整">
- <combo_box.item label="潦瑯胯U潦" name="Basic"/>
- <combo_box.item label="U喋嫘U潦" name="Advanced"/>
- </combo_box>
<text name="TimeText" tool_tip="曉冽鳴憭芸像瘣嚗">
24:00 AM PST
</text>
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 41dc098ba2..f611b96502 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -77,10 +77,10 @@
准瑯乓∼扎怒璊閮潦艾整嚗閬 60 嚚 90 蝘嚗...
</string>
<string name="LoginProcessingResponse">
- 敹蝑衣艾整...
+ 撖曉衣銝准扼...
</string>
<string name="LoginInitializingWorld">
- 胯潦怒艾整...
+ 胯潦怒銝准扼...
</string>
<string name="LoginDecodingImages">
餃喋潦艾整...
@@ -128,7 +128,7 @@
啜芥萸潦潦餈閮潭詻桃蔡隤閮潦扼整扼啜芥桃恣怒
</string>
<string name="LoginFailedNoNetwork">
- 胯潦胯具押潘 亦蝣箇扼整扼雿踴柴胯潦舀亦蝣箄
+ 胯潦胯具押潘亦蝣箇扼整扼雿踴柴胯潦舀亦蝣箄
</string>
<string name="LoginFailed">
准啜扎喋怠仃整
@@ -1276,6 +1276,9 @@ support@secondlife.com 怒
<string name="Marketplace Error Internal Import">
具押潘桀恍U血憿箇整啜艾閰艾
</string>
+ <string name="Open landmarks">
+ 押喋潦胯
+ </string>
<string name="no_transfer" value=" 嚗鞎押颯研潦喋銝荔"/>
<string name="no_modify" value=" 嚗蝺券銝荔"/>
<string name="no_copy" value=" 嚗喋潔荔"/>
@@ -4254,8 +4257,8 @@ www.secondlife.com 啜潦詻扼喋艾喋准潦艾
<string name="Female - Wow">
憟單 - Wow
</string>
- <string name="/bow1">
- /bow1
+ <string name="/bow">
+ /
</string>
<string name="/clap">
/
@@ -4767,4 +4770,172 @@ www.secondlife.com 啜潦詻扼喋艾喋准潦艾
<string name="ParticleHiding">
潦胯怒銵函內
</string>
+ <string name="Command_AboutLand_Label">
+ 唳
+ </string>
+ <string name="Command_Appearance_Label">
+ 摰孵尿
+ </string>
+ <string name="Command_Avatar_Label">
+ U踴
+ </string>
+ <string name="Command_Build_Label">
+ 嗡
+ </string>
+ <string name="Command_Chat_Label">
+
+ </string>
+ <string name="Command_Compass_Label">
+ 喋喋
+ </string>
+ <string name="Command_Destinations_Label">
+ 銵
+ </string>
+ <string name="Command_Gestures_Label">
+ 詻扼嫘
+ </string>
+ <string name="Command_HowTo_Label">
+ 艾
+ </string>
+ <string name="Command_Inventory_Label">
+ ∠
+ </string>
+ <string name="Command_Map_Label">
+ 啣
+ </string>
+ <string name="Command_Marketplace_Label">
+ 潦晞研扎
+ </string>
+ <string name="Command_MiniMap_Label">
+
+ </string>
+ <string name="Command_Move_Label">
+ 蝘餃
+ </string>
+ <string name="Command_People_Label">
+ 鈭
+ </string>
+ <string name="Command_Picks_Label">
+
+ </string>
+ <string name="Command_Places_Label">
+ 湔
+ </string>
+ <string name="Command_Preferences_Label">
+ 啣閮剖
+ </string>
+ <string name="Command_Profile_Label">
+ 准潦
+ </string>
+ <string name="Command_Search_Label">
+ 璊蝝
+ </string>
+ <string name="Command_Snapshot_Label">
+ 嫘瑯扼
+ </string>
+ <string name="Command_Speak_Label">
+ 閰晞
+ </string>
+ <string name="Command_View_Label">
+ 閬
+ </string>
+ <string name="Command_Voice_Label">
+ 餈柴扎
+ </string>
+ <string name="Command_AboutLand_Tooltip">
+ 閮芸恍U
+ </string>
+ <string name="Command_Appearance_Tooltip">
+ U踴潦憭
+ </string>
+ <string name="Command_Avatar_Tooltip">
+ U踴潔撘豢
+ </string>
+ <string name="Command_Build_Tooltip">
+ 芥詻扼胯桀嗡典啣耦桀敶
+ </string>
+ <string name="Command_Chat_Tooltip">
+ 餈桐犖冽摮
+ </string>
+ <string name="Command_Compass_Tooltip">
+ 喋喋
+ </string>
+ <string name="Command_Destinations_Tooltip">
+ 銵艾踴湔
+ </string>
+ <string name="Command_Gestures_Tooltip">
+ U踴潦柴詻扼嫘
+ </string>
+ <string name="Command_HowTo_Tooltip">
+ 銝祉踴嫘胯桀銵寞
+ </string>
+ <string name="Command_Inventory_Tooltip">
+ ∠押銵函內颱蝙
+ </string>
+ <string name="Command_Map_Tooltip">
+ 銝啣
+ </string>
+ <string name="Command_Marketplace_Tooltip">
+ 瑯扼喋啜怠箸
+ </string>
+ <string name="Command_MiniMap_Tooltip">
+ 餈桐犖銵函內
+ </string>
+ <string name="Command_Move_Tooltip">
+ U踴潦桃宏
+ </string>
+ <string name="Command_People_Tooltip">
+ 研喋啜怒潦餈桐犖
+ </string>
+ <string name="Command_Picks_Tooltip">
+ 准潦怒抒晶隞瘞怠乓桀湔
+ </string>
+ <string name="Command_Places_Tooltip">
+ 靽摮皜踴桀湔
+ </string>
+ <string name="Command_Preferences_Tooltip">
+ 啣閮剖
+ </string>
+ <string name="Command_Profile_Tooltip">
+ 准潦怒蝺券餉”蝷
+ </string>
+ <string name="Command_Search_Tooltip">
+ 湔扎喋鈭箝璊蝝
+ </string>
+ <string name="Command_Snapshot_Tooltip">
+ 胯柴
+ </string>
+ <string name="Command_Speak_Tooltip">
+ 扎胯雿踴西桐犖刻店
+ </string>
+ <string name="Command_View_Tooltip">
+ 怒∼押株摨艾憭
+ </string>
+ <string name="Command_Voice_Tooltip">
+ 扎嫘璈賬方桐犖
+ </string>
+ <string name="Retain%">
+ 蝬剜
+ </string>
+ <string name="Detail">
+ 閰喟敦
+ </string>
+ <string name="Better Detail">
+ 刻底
+ </string>
+ <string name="Surface">
+ 銵券
+ </string>
+ <string name="Solid">
+ 賬芥
+ </string>
+ <string name="Wrap">
+ 押
+ </string>
+ <string name="Preview">
+ 研乓
+ </string>
+ <string name="Normal">
+ 桅
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/pl/floater_about.xml b/indra/newview/skins/default/xui/pl/floater_about.xml
index 637325ddd0..409429ffaa 100644
--- a/indra/newview/skins/default/xui/pl/floater_about.xml
+++ b/indra/newview/skins/default/xui/pl/floater_about.xml
@@ -10,7 +10,7 @@
<floater.string name="AboutPosition">
Poo髒enie [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] w [REGION] zlokalizowanym w &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">
Procesor: [CPU]
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
index 1c19a55de6..c53aa7d5f7 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
@@ -16,7 +16,7 @@
<combo_box.item label="郕邽邿 (Russo) - 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="甇擃 (Chin礙s tradicional) - Beta" name="Traditional Chinese"/>
+ <combo_box.item label="甇擃銝剜 (Chin礙s tradicional) - Beta" name="Traditional Chinese"/>
</combo_box>
<text name="language_textbox2">
(Reinicie para trocar de idioma)
diff --git a/indra/newview/skins/default/xui/ru/floater_about.xml b/indra/newview/skins/default/xui/ru/floater_about.xml
index 6bc550c3fe..deb6be319c 100644
--- a/indra/newview/skins/default/xui/ru/floater_about.xml
+++ b/indra/newview/skins/default/xui/ru/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] [ReleaseNotes]]
+[SERVER_RELEASE_NOTES_URL]
</floater.string>
<floater.string name="AboutSystem">
虷: [CPU]
@@ -36,6 +36,9 @@
<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/ru/floater_about_land.xml b/indra/newview/skins/default/xui/ru/floater_about_land.xml
index cf43f41107..488d2cda17 100644
--- a/indra/newview/skins/default/xui/ru/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ru/floater_about_land.xml
@@ -212,19 +212,19 @@
郋郇郇邿 邾郇郋迠邽迮郅 迡郅 郋訇迮郕郋赲: [BONUS]
</text>
<text name="Simulator primitive usage:">
- 邽邾邽邽赲郋赲 邽郈郋郅郱迮:
+ 邾郕郋 迮迣邽郋郇訄:
</text>
<text name="objects_available">
[COUNT] 邽郱 [MAX] ([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/ru/floater_avatar.xml b/indra/newview/skins/default/xui/ru/floater_avatar.xml
new file mode 100644
index 0000000000..6bdf819880
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_camera.xml b/indra/newview/skins/default/xui/ru/floater_camera.xml
index 495c5d55fc..7a1f530668 100644
--- a/indra/newview/skins/default/xui/ru/floater_camera.xml
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_chat_bar.xml b/indra/newview/skins/default/xui/ru/floater_chat_bar.xml
new file mode 100644
index 0000000000..eceab1775a
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml
deleted file mode 100644
index 7c702f246d..0000000000
--- a/indra/newview/skins/default/xui/ru/floater_day_cycle_options.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Day Cycle Floater" title="苠 苤苺苠虴 虷">
- <tab_container name="Day Cycle Tabs">
- <panel label="苤郋郇邿 邽郕郅" name="Day Cycle">
- <multi_slider initial_value="0" name="WLTimeSlider"/>
- <multi_slider initial_value="0" name="WLDayCycleKeys"/>
- <text name="WL12am">
- 00:00
- </text>
- <text name="WL3am">
- 03:00
- </text>
- <text name="WL6am">
- 06:00
- </text>
- <text name="WL9amHash">
- 09:00
- </text>
- <text name="WL12pmHash">
- 12:00
- </text>
- <text name="WL3pm">
- 15:00
- </text>
- <text name="WL6pm">
- 18:00
- </text>
- <text name="WL9pm">
- 21:00
- </text>
- <text name="WL12am2">
- 00:00
- </text>
- <text name="WL12amHash">
- |
- </text>
- <text name="WL3amHash">
- I
- </text>
- <text name="WL6amHash">
- |
- </text>
- <text name="WL9amHash2">
- I
- </text>
- <text name="WL12pmHash2">
- |
- </text>
- <text name="WL3pmHash">
- I
- </text>
- <text name="WL6pmHash">
- |
- </text>
- <text name="WL9pmHash">
- I
- </text>
- <text name="WL12amHash2">
- |
- </text>
- <button label="郋訇訄赲邽 郕郅" label_selected="郋訇訄赲邽 郕郅" name="WLAddKey"/>
- <button label="苺迡訄郅邽 郕郅" label_selected="苺迡訄郅邽 郕郅" name="WLDeleteKey"/>
- <text name="WLCurKeyFrameText">
- 訄郋邿郕邽 郕郅迮赲郋迣郋 郕訄迡訄:
- </text>
- <text name="WLCurKeyTimeText">
- 郅迮赲郋迮 赲迮邾:
- </text>
- <spinner label="" name="WLCurKeyHour"/>
- <spinner label="邾邽郇" name="WLCurKeyMin"/>
- <text name="WLCurKeyTimeText2">
- 郅迮赲訄 郇訄郋邿郕訄:
- </text>
- <combo_box label="訄郋邿郕訄" name="WLKeyPresets"/>
- <text name="DayCycleText">
- 邽赲郱郕訄:
- </text>
- <combo_box label="5 邾邽郇" name="WLSnapOptions"/>
- <text name="DayCycleText2">
- 郅邽迮郅郇郋 邽郕郅訄:
- </text>
- <spinner label="" name="WLLengthOfDayHour"/>
- <spinner label="邾邽郇" name="WLLengthOfDayMin"/>
- <spinner label="" name="WLLengthOfDaySec"/>
- <text name="DayCycleText3">
- 郋邾郋:
- </text>
- <button label="郋邽迣訄" label_selected="郋邽迣訄" name="WLAnimSky"/>
- <button label="苤郋郈!" label_selected="苤郋郈" name="WLStopAnimSky"/>
- <button label="郈郋郅郱郋赲訄 赲迮邾 赲 郱迮邾郅迮赲郅訄迡迮郇邽邽" label_selected="迮迮邿邽 郇訄 赲迮邾 郱迮邾郅迮赲郅訄迡迮郇邽" name="WLUseLindenTime"/>
- <button label="苤郋訄郇邽 迮郋赲邿 迡迮郇" label_selected="苤郋訄郇邽 迮郋赲邿 迡迮郇" name="WLSaveDayCycle"/>
- <button label="訄迣郱邽 迮郋赲邿 迡迮郇" label_selected="訄迣郱邽 迮郋赲邿 迡迮郇" name="WLLoadDayCycle"/>
- </panel>
- </tab_container>
-</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_destinations.xml b/indra/newview/skins/default/xui/ru/floater_destinations.xml
new file mode 100644
index 0000000000..e769812beb
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_fast_timers.xml b/indra/newview/skins/default/xui/ru/floater_fast_timers.xml
new file mode 100644
index 0000000000..20936b8494
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_how_to.xml b/indra/newview/skins/default/xui/ru/floater_how_to.xml
new file mode 100644
index 0000000000..52525e5d33
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_joystick.xml b/indra/newview/skins/default/xui/ru/floater_joystick.xml
index 2390789746..cc93152225 100644
--- a/indra/newview/skins/default/xui/ru/floater_joystick.xml
+++ b/indra/newview/skins/default/xui/ru/floater_joystick.xml
@@ -4,13 +4,13 @@
郋邿赲郋 郇迮 赲訇訄郇郋
</floater.string>
<check_box label="郕郅邽 迡迠郋邿邽郕:" name="enable_joystick"/>
- <spinner label="訄郅郋迠迮郇邽迮 郈郋 郋邽 X" name="JoystickAxis1"/>
- <spinner label="訄郅郋迠迮郇邽迮 郈郋 郋邽 Y" name="JoystickAxis2"/>
- <spinner label="訄郅郋迠迮郇邽迮 郈郋 郋邽 Z" name="JoystickAxis0"/>
- <spinner label="訄郅郋迠迮郇邽迮 郕郅郋郇郋赲" name="JoystickAxis4"/>
- <spinner label="訄郅郋迠迮郇邽迮 迣邽訇郋赲" name="JoystickAxis5"/>
- <spinner label="訄郅郋迠迮郇邽迮 赲訄迮郇邽" name="JoystickAxis3"/>
- <spinner label="訄郅郋迠迮郇邽迮 邾訄訄訇邽郋赲訄郇邽" name="JoystickAxis6"/>
+ <spinner label="訄郅郋迠迮郇邽迮 郈郋 X" name="JoystickAxis1"/>
+ <spinner label="訄郅郋迠迮郇邽迮 郈郋 Y" name="JoystickAxis2"/>
+ <spinner label="訄郅郋迠迮郇邽迮 郈郋 Z" name="JoystickAxis0"/>
+ <spinner label=". 郕郅郋郇郋赲" name="JoystickAxis4"/>
+ <spinner label=". 迣邽訇郋赲" name="JoystickAxis5"/>
+ <spinner label=". 赲訄迮郇邽" name="JoystickAxis3"/>
+ <spinner label=". 邾訄訄訇邽." name="JoystickAxis6"/>
<check_box label="訄訄訇邽郋赲訄郇邽迮" name="ZoomDirect"/>
<check_box label="3D 郕郋" name="Cursor3D"/>
<check_box label="赲郋郋赲迮郇" name="AutoLeveling"/>
@@ -18,7 +18,7 @@
迮迠邽邾 郈訄赲郅迮郇邽:
</text>
<check_box label="赲訄訄" name="JoystickAvatarEnabled"/>
- <check_box label="苤郋邽迮郅赲郋" name="JoystickBuildEnabled"/>
+ <check_box label="苤郋邿郕訄" name="JoystickBuildEnabled"/>
<check_box label="訄邾迮訄" name="JoystickFlycamEnabled"/>
<stat_view label="郋郇邽郋 迡迠郋邿邽郕訄" name="axis_view">
<stat_bar label=" 0" name="axis0"/>
@@ -56,13 +56,13 @@
迮赲邽迡邽邾訄 郱郋郇訄 郈郋 Z
</text>
<text name="PitchDeadZone">
- 迮赲邽迡邽邾訄 郱郋郇訄 郕郅郋郇訄
+ 迮赲邽迡. 郱郋郇訄 郕郅郋郇訄
</text>
<text name="YawDeadZone">
- 迮赲邽迡邽邾訄 郱郋郇訄 迣邽訇訄
+ 迮赲邽迡. 郱郋郇訄 迣邽訇訄
</text>
<text name="RollDeadZone">
- 迮赲邽迡邽邾訄 郱郋郇訄 赲訄迮郇邽
+ 迮赲邽迡. 郱郋郇訄 赲訄迮郇邽
</text>
<text name="Feathering">
訄郱邾赲郕訄 郕訄迮赲
@@ -71,7 +71,7 @@
訄訄訇
</text>
<text name="ZoomDeadZone">
- 迮赲邽迡邽邾訄 郱郋郇訄 郈邽 邾訄訄訇邽郋赲訄郇邽邽
+ 迮赲邽迡. 郱郋郇訄 邾訄.
</text>
<button label="苤訄郇迡訄郇迮 郱郇訄迮郇邽 SpaceNavigator" name="SpaceNavigatorDefaults"/>
<button label="OK" label_selected="OK" name="ok_btn"/>
diff --git a/indra/newview/skins/default/xui/ru/floater_map.xml b/indra/newview/skins/default/xui/ru/floater_map.xml
index 169bac5bd2..59ceb0a773 100644
--- a/indra/newview/skins/default/xui/ru/floater_map.xml
+++ b/indra/newview/skins/default/xui/ru/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>
@@ -7,7 +7,7 @@
[REGION](赲郋邿郇郋邿 迮郅郋郕 迮郅迮郈郋訄邽, shift+郈迮迮迣邽赲訄郇邽迮 郋訇郱郋)
</floater.string>
<floater.string name="mini_map_caption">
- 苠
+ 邽郇邽郕訄訄
</floater.string>
<text label="苤" name="floater_map_north">
diff --git a/indra/newview/skins/default/xui/ru/floater_model_preview.xml b/indra/newview/skins/default/xui/ru/floater_model_preview.xml
index 53ef685f9e..31517e722d 100644
--- a/indra/newview/skins/default/xui/ru/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/ru/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">
+ 訄迮邽訄郅 郋赲郇 迡迮訄郅邽郱訄邽邽 郇迮 赲郋迡 赲 訄郅郋郇郇 邾郋迡迮郅.
+ </string>
<string name="layer_all">
</string>
@@ -63,186 +64,211 @@
<string name="tbd">
郋郱迠迮
</string>
- <text name="name_label">
- 訄郱赲訄郇邽迮:
- </text>
- <text name="lod_label">
- 郋邾郋:
- </text>
- <combo_box name="preview_lod_combo" tool_tip="苺郋赲迮郇 迡迮訄郅邽郱訄邽邽 郈邽 郈迮迡赲訄邽迮郅郇郋邾 郈郋邾郋迮">
- <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="訇迮邽迮 赲訄邽訄郇..." 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="苺郋赲迮郇 迡迮訄郅邽郱訄邽邽 迡郅 邽郱邽迮郕郋邿 郋邾">
- <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="苺郋赲迮郇 迡迮訄郅邽郱訄邽邽 迡郅 邽郱邽迮郕郋邿 郋邾">
+ <combo_item name="choose_one">
+ 訇迮邽迮 赲訄邽訄郇...
+ </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] 邾
+ </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="苺郋赲迮郇 迡迮訄郅邽郱訄邽邽 郈邽 郈迮迡赲訄邽迮郅郇郋邾 郈郋邾郋迮">
+ <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/ru/floater_model_wizard.xml b/indra/newview/skins/default/xui/ru/floater_model_wizard.xml
index 9b2924a3db..204f752cd9 100644
--- a/indra/newview/skins/default/xui/ru/floater_model_wizard.xml
+++ b/indra/newview/skins/default/xui/ru/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">
郋郅郱郋赲訄迮郅邾, 訄訇郋訄邽邾 赲 訄邽迮郇郇郋邾 迮迠邽邾迮: 迮郅邽 赲 邾迮迮迮 郋郱迡訄赲訄 迮邾迮郇迮 迣訄邽迮郕邽迮 郋訇迮郕, 郋, 赲郋郱邾郋迠郇郋, 郱訄郋邽迮 赲郋郈郋郅郱郋赲訄 迮迡赲郋邾 Advanced Uploader, 郕郋郋郋迮 郈迮迡郋訄赲郅迮 訄邽迮郇郇迮 赲郋郱邾郋迠郇郋邽 郈迮迮迡訄邽 郋訇迮郕郋赲.
</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 (嚜澳AE)
- </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="迮訄郅邽郱訄邽 郈邽 郈迮迡赲訄邽迮郅郇郋邾 郈郋邾郋迮">
- <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="迮訄郅邽郱訄邽 郈邽 郈迮迡赲訄邽迮郅郇郋邾 郈郋邾郋迮">
- <combo_item name="preview_lod2_high">
+ <combo_box name="preview_lod_combo2" tool_tip="苺郋赲迮郇 迡迮訄郅邽郱訄邽邽 郈邽 郈迮迡赲訄邽迮郅郇郋邾 郈郋邾郋迮">
+ <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/ru/floater_moveview.xml b/indra/newview/skins/default/xui/ru/floater_moveview.xml
index c6ef4a06b3..6e01f997e1 100644
--- a/indra/newview/skins/default/xui/ru/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/ru/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>
diff --git a/indra/newview/skins/default/xui/ru/floater_my_appearance.xml b/indra/newview/skins/default/xui/ru/floater_my_appearance.xml
new file mode 100644
index 0000000000..b90d80f3fd
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_my_inventory.xml b/indra/newview/skins/default/xui/ru/floater_my_inventory.xml
new file mode 100644
index 0000000000..534d2a5774
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_object_weights.xml b/indra/newview/skins/default/xui/ru/floater_object_weights.xml
new file mode 100644
index 0000000000..41e0118732
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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="郅郋迠迮郇郋 郇訄 郱迮邾郅"/>
+ <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/ru/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml
index 781ee8c771..301206e473 100644
--- a/indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/ru/floater_outfit_save_as.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="苤郋訄郇迮郇邽迮 郕郋邾訄">
+<floater name="modal container" title="苤苭苠衧 苤苠衩">
<button label="苤郋訄郇邽" label_selected="苤郋訄郇邽" name="Save"/>
<button label="邾迮郇訄" label_selected="邾迮郇訄" name="Cancel"/>
<text name="Save item as:">
diff --git a/indra/newview/skins/default/xui/ru/floater_people.xml b/indra/newview/skins/default/xui/ru/floater_people.xml
new file mode 100644
index 0000000000..7abc34986a
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_picks.xml b/indra/newview/skins/default/xui/ru/floater_picks.xml
new file mode 100644
index 0000000000..e0ae8d6f03
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_places.xml b/indra/newview/skins/default/xui/ru/floater_places.xml
new file mode 100644
index 0000000000..2a22a855ef
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_preferences.xml b/indra/newview/skins/default/xui/ru/floater_preferences.xml
index 31c751250e..fc244b9d8b 100644
--- a/indra/newview/skins/default/xui/ru/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/ru/floater_preferences.xml
@@ -11,7 +11,7 @@
<panel label="苺赲迮迡郋邾郅迮郇邽" name="msgs"/>
<panel label="虷赲迮訄" name="colors"/>
<panel label="邽赲訄郇郋" name="im"/>
- <panel label="訄郋邿郕訄" name="input"/>
- <panel label="訄邽迮郇郇邿" name="advanced1"/>
+ <panel label="郋郇邽迣訄邽" name="input"/>
+ <panel label="郋郈郋郅郇邽迮郅郇郋" name="advanced1"/>
</tab_container>
</floater>
diff --git a/indra/newview/skins/default/xui/ru/floater_sound_devices.xml b/indra/newview/skins/default/xui/ru/floater_sound_devices.xml
index 809cea5aa1..fc8de858cd 100644
--- a/indra/newview/skins/default/xui/ru/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/ru/floater_sound_devices.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_sound_devices" title="赲郕郋赲迮 郋邿赲訄">
+<floater name="floater_sound_devices" title="苺衎 苺苤苠苤苠">
<text name="voice_label">
郋郅郋郋赲郋邿 訄
</text>
diff --git a/indra/newview/skins/default/xui/ru/floater_stats.xml b/indra/newview/skins/default/xui/ru/floater_stats.xml
index c5cccd4091..b1f60c8029 100644
--- a/indra/newview/skins/default/xui/ru/floater_stats.xml
+++ b/indra/newview/skins/default/xui/ru/floater_stats.xml
@@ -10,8 +10,8 @@
</stat_view>
<stat_view label="郋郈郋郅郇邽迮郅郇郋" name="advanced">
<stat_view label="邽郋赲郕訄" name="render">
- <stat_bar label="苠迮迣郋郅郇邽郕郋赲 郱訄 迮郕郇迡" name="ktrisframe"/>
- <stat_bar label="苠迮迣郋郅郇邽郕郋赲 郱訄 迮郕郇迡" name="ktrissec"/>
+ <stat_bar label="苠迮迣郋郅郇邽郕郋赲 郇訄 郕訄迡" name="ktrisframe"/>
+ <stat_bar label="苠迮迣郋郅郇邽郕郋赲 赲 迮郕郇迡" name="ktrissec"/>
<stat_bar label="迮迣郋 郋訇迮郕郋赲" name="objs"/>
<stat_bar label="郋赲 郋訇迮郕郋赲" name="newobjs"/>
</stat_view>
@@ -32,7 +32,7 @@
<stat_bar label="苤郅郋邽" name="layerskbitstat"/>
<stat_bar label="迮邿赲邽迮郅郇邿 赲赲郋迡" name="actualinkbitstat"/>
<stat_bar label="迮邿赲邽迮郅郇邿 赲赲郋迡" name="actualoutkbitstat"/>
- <stat_bar label="迠邽迡訄邽迮 郋郈-邽邽 VFS" name="vfspendingoperations"/>
+ <stat_bar label="迠邽迡訄邽迮 郋郈迮訄邽邽 VFS" name="vfspendingoperations"/>
</stat_view>
</stat_view>
<stat_view label="苤邽邾郅郋" name="sim">
@@ -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="訄郇郇迮 赲迮邾迮郇邽 (邾)" name="timedetails">
+ <stat_bar label="虼訄迣 邽郱邽郕邽" name="simsimphysicsstepmsec"/>
+ <stat_bar label="訇郇郋赲邽 邽郱. 郋邾" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="苳邽郱邽郕訄 - 郈郋迮迮" name="simsimphysicsothermsec"/>
+ <stat_bar label="迮邾 郇訄" name="simsleepmsec"/>
+ <stat_bar label="赲郋迡/赲赲郋迡" name="simpumpiomsec"/>
+ </stat_view>
</stat_view>
</stat_view>
</container_view>
diff --git a/indra/newview/skins/default/xui/ru/floater_tools.xml b/indra/newview/skins/default/xui/ru/floater_tools.xml
index 7200ec80fa..660eca51c6 100644
--- a/indra/newview/skins/default/xui/ru/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ru/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 name="button focus" tool_tip="迮郅邽赲郋"/>
<button name="button move" tool_tip="迮迮邾迮邽"/>
@@ -107,8 +107,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">
@@ -321,7 +321,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/ru/floater_toybox.xml b/indra/newview/skins/default/xui/ru/floater_toybox.xml
new file mode 100644
index 0000000000..eb03e8c8bf
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/floater_voice_controls.xml b/indra/newview/skins/default/xui/ru/floater_voice_controls.xml
index 9fd6518984..6520a4342c 100644
--- a/indra/newview/skins/default/xui/ru/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/ru/floater_voice_controls.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_voice_controls" title="苺郈訄赲郅迮郇邽迮 迣郋郅郋郋邾">
+<floater name="floater_voice_controls" title="苺 苤">
<string name="title_nearby">
- 衧衎 苤 虴苠
+ 郋郅郋訄 郋訇迮迮迡郇邽郕郋赲
</string>
<string name="title_group">
赲郋郇郋郕 迣郈郈迮 [GROUP]
diff --git a/indra/newview/skins/default/xui/ru/menu_hide_navbar.xml b/indra/newview/skins/default/xui/ru/menu_hide_navbar.xml
index f77896677d..34e5f4c0e4 100644
--- a/indra/newview/skins/default/xui/ru/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/ru/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/ru/menu_login.xml b/indra/newview/skins/default/xui/ru/menu_login.xml
index 3b545bf593..aa3570f176 100644
--- a/indra/newview/skins/default/xui/ru/menu_login.xml
+++ b/indra/newview/skins/default/xui/ru/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/ru/menu_toolbars.xml b/indra/newview/skins/default/xui/ru/menu_toolbars.xml
new file mode 100644
index 0000000000..e04a9ee57d
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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/ru/menu_viewer.xml b/indra/newview/skins/default/xui/ru/menu_viewer.xml
index c4e553f918..322a27003f 100644
--- a/indra/newview/skins/default/xui/ru/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ru/menu_viewer.xml
@@ -1,27 +1,28 @@
<?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="郈邽 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="Manage My Account"/>
+ <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">
@@ -32,7 +33,7 @@
<menu_item_check label="郋郅郋訄 郋訇迮迮迡郇邽郕郋赲" name="Nearby Voice"/>
</menu>
<menu label="邽" name="World">
- <menu_item_check label="邽郇邽-郕訄訄" name="Mini-Map"/>
+ <menu_item_check label="邽郇邽郕訄訄" name="Mini-Map"/>
<menu_item_check label="訄訄 邾邽訄" name="World Map"/>
<menu_item_check label="郋邽郕" name="Search"/>
<menu_item_call label="苤郇邽邾郋郕" name="Take Snapshot"/>
@@ -144,7 +145,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"/>
@@ -160,7 +160,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"/>
@@ -288,6 +288,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/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml
index 91c8dbf761..87ae9d06dd 100644
--- a/indra/newview/skins/default/xui/ru/notifications.xml
+++ b/indra/newview/skins/default/xui/ru/notifications.xml
@@ -1909,6 +1909,12 @@ http://secondlife.com/download.
邿邽 邽郱 郈郋迣訄邾邾?
<usetemplate ignoretext="郋迡赲迮迠迡訄 郈迮迮迡 赲郋迡郋邾" name="okcancelignore" notext="迮 赲郋迡邽" yestext="邿邽"/>
</notification>
+ <notification name="ConfirmRestoreToybox">
+ 迡迮邿赲邽迮郅郇郋 郋邽迮 赲郋訄郇郋赲邽 郈邽郇迮 郈郋 邾郋郅訄郇邽 郕郇郋郈郕邽 邽 郈訄郇迮郅邽 邽郇邾迮郇郋赲?
+
+衪郋 迡迮邿赲邽迮 郇迮郅郱 郋邾迮郇邽.
+ <usetemplate name="okcancelbuttons" notext="邾迮郇訄" yestext="OK"/>
+ </notification>
<notification name="DeleteItems">
[QUESTION]
<usetemplate ignoretext="郋迡赲迮迠迡訄 郈迮迮迡 迡訄郅迮郇邽迮邾 郈迮迡邾迮郋赲" name="okcancelignore" notext="邾迮郇訄" yestext="OK"/>
@@ -2995,10 +3001,6 @@ http://secondlife.com/download.
<button name="cancel" text="邾迮郇訄"/>
</form>
</notification>
- <notification label="" name="ModeChange">
- 郅 邾迮郇 迮迠邽邾訄 迮訇迮 赲邿邽 邽郱 郈郋迣訄邾邾 邽 郈迮迮郱訄郈邽 迮迮.
- <usetemplate name="okcancelbuttons" notext="迮 赲郋迡邽" yestext="邿邽"/>
- </notification>
<notification label="" name="NoClassifieds">
苤郋郱迡訄郇邽迮 邽 迮迡訄郕邽郋赲訄郇邽迮 迮郕郅訄邾 迡郋郈郇郋 郋郅郕郋 赲 訄邽迮郇郇郋邾 迮迠邽邾迮. 邿邽 邽郱 郈郋迣訄邾邾 邽 邾迮郇邽 迮迠邽邾? 迮郇 邾迮郇 迮迠邽邾訄 郇訄郋迡邽 郇訄 郕訄郇迮 赲郋迡訄.
<usetemplate name="okcancelbuttons" notext="迮 赲郋迡邽" yestext="邿邽"/>
@@ -3043,6 +3045,10 @@ http://secondlife.com/download.
郋邽郕 迡郋郈迮郇 郋郅郕郋 赲 訄邽迮郇郇郋邾 迮迠邽邾迮. 邿邽 邽郱 郈郋迣訄邾邾 邽 邾迮郇邽 迮迠邽邾?
<usetemplate name="okcancelbuttons" notext="迮 赲郋迡邽" yestext="郋迡"/>
</notification>
+ <notification label="" name="ConfirmHideUI">
+ 衪郋 迡迮邿赲邽迮 郈邽赲迮迡迮 郕 郕邽 赲迮 邾迮郇 邽 郕郇郋郈郋郕. 虴郋訇 赲迮郇 邽, 迮郅郕郇邽迮 [SHORTCUT] 郇郋赲訄.
+ <usetemplate ignoretext="郋迡赲迮迠迡訄 郈迮迮迡 郕邽迮邾 邽郇迮迮邿訄" name="okcancelignore" notext="邾迮郇訄" yestext="OK"/>
+ </notification>
<global name="UnsupportedGLRequirements">
郋-赲邽迡邽邾郋邾, 赲訄迮 郋訇郋迡郋赲訄郇邽迮 郇迮 迡郋赲郅迮赲郋迮 迮訇郋赲訄郇邽邾 [APP_NAME]. 郅 訄訇郋 [APP_NAME] 郇迮郋訇郋迡邽邾訄 迣訄邽迮郕訄 郕訄訄 OpenGL 郈郋迡迡迮迠郕郋邿 邾郅邽迮郕. 郅邽 赲訄 迮 訄郕訄 郕訄訄, 訇迮迡邽迮, 郋 訄郇郋赲郅迮郇 郇郋赲迮邿邽迮 赲迮邽邽 迡訄邿赲迮郋赲 迡郅 郇迮迮 邽 郈訄郕迮 郋訇郇郋赲郅迮郇邽邿 邽 邽郈訄赲郅迮郇邽 迡郅 郋郈迮訄邽郋郇郇郋邿 邽迮邾.
diff --git a/indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/ru/panel_chiclet_bar.xml
new file mode 100644
index 0000000000..f203ecde4b
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/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="訄郱迣郋赲郋"/>
+ </chiclet_im_well>
+ </layout_panel>
+ <layout_panel name="notification_well_panel">
+ <chiclet_notification name="notification_well">
+ <button name="Unread" tool_tip="苺赲迮迡郋邾郅迮郇邽"/>
+ </chiclet_notification>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_me.xml b/indra/newview/skins/default/xui/ru/panel_me.xml
index b37627b4d9..21a125af87 100644
--- a/indra/newview/skins/default/xui/ru/panel_me.xml
+++ b/indra/newview/skins/default/xui/ru/panel_me.xml
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="郋邿 郈郋邽郅" name="panel_me">
- <tab_container name="tabs">
- <panel label=" 苳衧" name="panel_profile"/>
- <panel label="觓 " name="panel_picks"/>
- </tab_container>
+ <panel label="觓 " name="panel_picks"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml b/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml
index 3bda315261..d9890acff2 100644
--- a/indra/newview/skins/default/xui/ru/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/ru/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="迮郇 赲 郈迮迡迡迮迮 邾迮郋"/>
- <pull_button name="forward_btn" tool_tip="迮迮邿邽 赲 郅迮迡迮迮 邾迮郋"/>
- <button name="home_btn" tool_tip="苠迮郅迮郈郋邽郋赲訄 迡郋邾郋邿"/>
- <location_input label="迮郋" name="location_combo"/>
- <search_combo_box label="郋邽郕" name="search_combo_box" tool_tip="郋邽郕">
- <combo_editor label="郋邽郕 [SECOND_LIFE]" name="search_combo_editor"/>
- </search_combo_box>
- </panel>
- <favorites_bar name="favorite" tool_tip="迮迮訄郕邽赲訄邿迮 迡訄 郱訄郕郅訄迡郕邽, 郋訇 訇郅郋 迡郋訇郇迮迮 郈迮迮郋迡邽 赲 郅訇邽邾迮 邾迮訄 赲 Second Life!">
- <label name="favorites_bar_label" tool_tip="迮迮訄郕邽赲訄邿迮 迡訄 郱訄郕郅訄迡郕邽, 郋訇 訇郅郋 迡郋訇郇迮迮 郈迮迮郋迡邽 赲 郅訇邽邾迮 邾迮訄 赲 Second Life!">
- 訄郇迮郅 竄郱訇訄郇郇郋迮罈
- </label>
- <chevron_button name="&gt;&gt;" tool_tip="郋郕訄郱訄 訇郋郅迮 邽郱訇訄郇郇郋迣郋"/>
- </favorites_bar>
+ <layout_stack name="nvp_stack">
+ <layout_panel name="navigation_layout_panel">
+ <panel name="navigation_panel">
+ <pull_button name="back_btn" tool_tip="迮郇 赲 郈迮迡迡迮迮 邾迮郋"/>
+ <pull_button name="forward_btn" tool_tip="迮迮邿邽 赲 郅迮迡迮迮 邾迮郋"/>
+ <button name="home_btn" tool_tip="苠迮郅迮郈郋訄邽 迡郋邾郋邿"/>
+ <location_input label="迮郋" name="location_combo"/>
+ </panel>
+ </layout_panel>
+ <layout_panel name="favorites_layout_panel">
+ <favorites_bar name="favorite" tool_tip="迮迮訄郕邽赲訄邿迮 迡訄 郱訄郕郅訄迡郕邽, 郋訇 訇郅郋 迡郋訇郇迮迮 郈迮迮郋迡邽 赲 郅訇邽邾迮 邾迮訄 赲 Second Life!">
+ <label name="favorites_bar_label" tool_tip="迮迮訄郕邽赲訄邿迮 迡訄 郱訄郕郅訄迡郕邽, 郋訇 訇郅郋 迡郋訇郇迮迮 郈迮迮郋迡邽 赲 郅訇邽邾迮 邾迮訄 赲 Second Life!">
+ 訄郇迮郅 竄郱訇訄郇郇郋迮罈
+ </label>
+ <more_button name="&gt;&gt;" tool_tip="郋郕訄郱訄 訇郋郅迮 邽郱訇訄郇郇郋迣郋">
+ 郋郅迮
+ </more_button>
+ </favorites_bar>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_nearby_chat.xml b/indra/newview/skins/default/xui/ru/panel_nearby_chat.xml
new file mode 100644
index 0000000000..a371040b74
--- /dev/null
+++ b/indra/newview/skins/default/xui/ru/panel_nearby_chat.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="nearby_chat">
+ <check_box label="迮迮赲郋迡 訄訄 (迮郇郋郅郋迣邽 Google)" name="translate_chat_checkbox"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml
index ae6d8bf94d..7d8ee96924 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_advanced.xml
@@ -17,7 +17,7 @@
<button label="訇郱郋" label_selected="訇郱郋" name="set_cache"/>
<button label="訄郈郋郅郋迠迮郇邽迮 郈郋 邾郋郅訄郇邽" label_selected="訄郈郋郅郋迠迮郇邽迮 郈郋 邾郋郅訄郇邽" name="default_cache_location"/>
<text name="UI Size:">
- 訄郱邾迮 邽郇迮迮邿訄:
+ 郇迮迮邿:
</text>
<check_box label="郋郕訄郱赲訄 郋邽訇郕邽 郕邽郈訄 赲:" name="show_script_errors"/>
<radio_group name="show_location">
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml
index e1135b5ee1..9d7ae546fd 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_alerts.xml
@@ -3,7 +3,7 @@
<text name="tell_me_label">
苤郋郋訇訄 邾郇迮:
</text>
- <check_box label="郋 訄訄 邽 迡郋郋迡訄" name="notify_money_change_checkbox"/>
+ <check_box label="郋 訄郋迡訄 邽 迡郋郋迡訄" name="notify_money_change_checkbox"/>
<check_box label="郋 赲郋迡迮 邽 赲郋迡迮 邾郋邽 迡郱迮邿" name="friends_online_notify_checkbox"/>
<text name="show_label">
迮迣迡訄 郈郋郕訄郱赲訄:
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml
index bc9e9a24ba..fa08c134ad 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_chat.xml
@@ -4,39 +4,39 @@
訄郱邾迮 邽訄:
</text>
<radio_group name="chat_font_size">
- <radio_item label="訄郅迮郇郕邽邿" name="radio" value="0"/>
+ <radio_item label="迮郅郕邽邿" name="radio" value="0"/>
<radio_item label="苤迮迡郇邽邿" name="radio2" value="1"/>
- <radio_item label="郋郅郋邿" name="radio3" value="2"/>
+ <radio_item label="郈郇邿" name="radio3" value="2"/>
</radio_group>
<check_box initial_value="邽邽郇訄" label="郋郈郋邽郱赲郋迡邽 訄郇邽邾訄邽 赲赲郋迡訄 迮郕訄 郈邽 郋訇迮郇邽邽" name="play_typing_animation"/>
- <check_box label="郈訄赲郅 邾郇迮 郋郋訇迮郇邽 郈郋 Email, 郕郋迣迡訄 赲 郋郅訄邿郇迮" name="send_im_to_email"/>
- <check_box label="郕郅邽 迮郕郋赲迮 郋郋訇迮郇邽 邽 迠郇訄郅 郋訇迮郇邽 赲 訄迮" name="plain_text_chat_history"/>
+ <check_box label="郈訄赲郅 邾郇迮 郋郋訇迮郇邽 郈郋 郈郋迮, 郕郋迣迡訄 邾迮郇 郇迮 赲 迮邽" name="send_im_to_email"/>
+ <check_box label="迮邽 迠郇訄郅 迮郕郋赲郋迣郋 IM 邽 訄訄" name="plain_text_chat_history"/>
<check_box label="虴訄 赲 郈郱郕訄" name="bubble_text_chat"/>
<text name="show_ims_in_label">
- 郋郕訄郱訄 郋郋訇迮郇邽 赲:
+ 郋郕訄郱赲訄 郋郋訇迮郇邽:
</text>
<text name="requires_restart_label">
(迮訇迮 郈迮迮郱訄郈郕)
</text>
<radio_group name="chat_window" tool_tip="郋郕訄郱赲訄 IM-郋郋訇迮郇邽 赲 郋迡迮郅郇 郋郕郇訄 邽郅邽 迠迮 赲 郋迡郇郋邾 郋郕郇迮 郇迮郕郋郅郕邽邾邽 赲郕郅訄迡郕訄邾邽 (迮訇迮 郈迮迮郱訄郈郕)">
- <radio_item label="迡迮郅郇迮 郋郕郇訄" name="radio" value="0"/>
- <radio_item label="郕郅訄迡郕邽" name="radio2" value="1"/>
+ <radio_item label=" 郋迡迮郅郇 郋郕郇訄" name="radio" value="0"/>
+ <radio_item label="訄 赲郕郅訄迡郕訄" name="radio2" value="1"/>
</radio_group>
<text name="disable_toast_label">
郕郅邽 赲郈郅赲訄邽迮 郋郋訇迮郇邽 郇郋赲邾邽 迮郈郅邽郕訄邾邽 赲 訄迮:
</text>
<check_box label="郈郈郋赲郋邿 訄" name="EnableGroupChatPopups" tool_tip="郋訇訄迠訄 赲郈郅赲訄邽迮 赲迮迡郋邾郅迮郇邽 郈邽 郈郋赲郅迮郇邽邽 郋郋訇迮郇邽邿 赲 迣郈郈郋赲郋邾 訄迮"/>
<check_box label="苠迮郕郋赲迮 訄" name="EnableIMChatPopups" tool_tip="郋訇訄迠訄 赲郈郅赲訄邽迮 赲迮迡郋邾郅迮郇邽 郈邽 郈郋郅迮郇邽邽 IM-郋郋訇迮郇邽邿"/>
- <spinner label="迮邾 郋郋訇訄迠迮郇邽 赲郈郅赲訄邽 郋郋訇迮郇邽邿 訄訄:" name="nearby_toasts_lifetime"/>
- <spinner label="迮邾 郱訄訄郇邽 赲郈郅赲訄邽 郋郋訇迮郇邽邿 訄訄:" name="nearby_toasts_fadingtime"/>
+ <spinner label="迮邾 郋郋訇訄迠迮郇邽 赲郈郅赲訄邽 迮郈郅邽郕:" name="nearby_toasts_lifetime"/>
+ <spinner label="迮邾 郱訄訄郇邽 赲郈郅赲訄邽 迮郈郅邽郕:" name="nearby_toasts_fadingtime"/>
<text name="translate_chb_label">
- 郈郋郅郱郋赲訄 邾訄邽郇郇邿 郈迮迮赲郋迡 赲郋 赲迮邾 郋訇迮郇邽 (邽郈郋郅郱迮 Google)
+ 郈郋郅郱郋赲訄 邾訄邽郇郇邿 郈迮迮赲郋迡 郈邽 郋訇迮郇邽邽 (迮郇郋郅郋迣邽 Google)
</text>
<text name="translate_language_text">
迮迮赲郋迡邽 訄 郇訄:
</text>
<combo_box name="translate_language_combobox">
- <combo_box.item label="苤訄郇迡訄郇訄 邽迮邾訄" name="System Default Language"/>
+ <combo_box.item label="觓郱郕 邽迮邾" name="System Default Language"/>
<combo_box.item label="English" name="English"/>
<combo_box.item label="Dansk" name="Danish"/>
<combo_box.item label="Deutsch" name="German"/>
@@ -50,7 +50,7 @@
<combo_box.item label="郕邽邿" name="Russian"/>
<combo_box.item label="T羹rk癟e" name="Turkish"/>
<combo_box.item label="苺郕訄郇郕訄" name="Ukrainian"/>
- <combo_box.item label="銝剜 (蝞雿) (Chinese)" name="Chinese"/>
+ <combo_box.item label="銝剜 (蝞雿) (郕邽訄邿郕邽邿)" name="Chinese"/>
<combo_box.item label="交祈 (Japanese)" name="Japanese"/>
<combo_box.item label="窱原 (Korean)" name="Korean"/>
</combo_box>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml b/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
index 17d84e2a39..48c34fcbb2 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
@@ -35,9 +35,9 @@
虷赲迮 郋郇訄 迮迣郋赲 邽邾迮郇 (訄郕迠迮 迡郅 訄訄 赲 郈郱郕訄):
</text>
<color_swatch name="background" tool_tip="訇迮邽迮 赲迮 迡郅 迮迣郋赲 邽邾迮郇"/>
- <slider label="郋郱訄郇郋:" name="bubble_chat_opacity" tool_tip="訄迡訄邿迮 郈郋郱訄郇郋 迮迣郋赲 邽邾迮郇"/>
+ <slider label="邽迡邽邾郋:" name="bubble_chat_opacity" tool_tip="訄迡訄邿迮 郇迮郈郋郱訄郇郋 迮迣郋赲 邽邾迮郇"/>
<text name="floater_opacity">
- 郋郱訄郇郋 郋郕郋郇:
+ 迮郈郋郱訄郇郋 郋郕郋郇:
</text>
<slider label="郕邽赲郇迮:" name="active"/>
<slider label="迮訄郕邽赲郇迮:" name="inactive"/>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
index 28d08d7702..49f743a6ba 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
@@ -4,31 +4,33 @@
觓郱郕:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="苤訄郇迡訄郇訄 郇訄郋邿郕訄 邽迮邾" name="System Default Language"/>
- <combo_box.item label="郇迣郅邽邿郕邽邿" name="English"/>
+ <combo_box.item label="觓郱郕 邽迮邾" name="System Default Language"/>
+ <combo_box.item label="English - 郇迣郅邽邿郕邽邿" name="English"/>
<combo_box.item label="Dansk 迡訄郕邽邿 (訇迮訄-赲迮邽)" name="Danish"/>
<combo_box.item label="Deutsch 郇迮邾迮郕邽邿 (訇迮訄-赲迮邽)" name="Deutsch(German)"/>
<combo_box.item label="Espa簽ol 邽郈訄郇郕邽邿 (訇迮訄-赲迮邽)" name="Spanish"/>
<combo_box.item label="Fran癟ais 訄郇郱郕邽邿 (訇迮訄-赲迮邽)" name="French"/>
<combo_box.item label="Italiano 邽訄郅郇郕邽邿 (訇迮訄-赲迮邽)" name="Italian"/>
- <combo_box.item label="Nederlands 郇邽迡迮郅訄郇迡郕邽邿 (訇迮訄-赲迮邽)" name="Dutch"/>
<combo_box.item label="Polski 郈郋郅郕邽邿 (訇迮訄-赲迮邽)" name="Polish"/>
<combo_box.item label="Portugu礙s 郈郋迣訄郅郕邽邿 (訇迮訄-赲迮邽)" name="Portugese"/>
+ <combo_box.item label="郕邽邿 (訇迮訄-赲迮邽)" name="Russian"/>
+ <combo_box.item label="T羹rk癟e - 迮郕邽邿 (訇迮訄-赲迮邽)" name="Turkish"/>
<combo_box.item label="交祈 郈郋郇郕邽邿 (訇迮訄-赲迮邽)" name="(Japanese)"/>
+ <combo_box.item label="甇擃銝剜 - 郕邽訄邿郕邽邿, 訄迡邽邽郋郇郇郋迮 郈邽邾郋 (訇迮訄-赲迮邽)" name="Traditional Chinese"/>
</combo_box>
<text name="language_textbox2">
(苠迮訇迮 郈迮迮郱訄郈郕)
</text>
<text name="maturity_desired_prompt">
- 觓 郋 赲邽迡迮 郋迡迮迠邽邾郋迮:
+ 郋郕訄郱赲訄 郕郋郇迮郇:
</text>
<combo_box name="maturity_desired_combobox">
- <combo_box.item label="General, Moderate, Adult" name="Desired_Adult"/>
- <combo_box.item label="General 邽 Moderate" name="Desired_Mature"/>
- <combo_box.item label="訇邽迮" name="Desired_PG"/>
+ <combo_box.item label="訇邽邿, 邾迮迮郇郇邿, 迡郅 赲郱郋郅" name="Desired_Adult"/>
+ <combo_box.item label="訇邽邿 邽 邾迮迮郇郇邿" name="Desired_Mature"/>
+ <combo_box.item label="訇邽邿" name="Desired_PG"/>
</combo_box>
<text name="start_location_textbox">
- 訄訄郅郇郋迮 邾迮郋:
+ 迮郋 訄訄:
</text>
<combo_box name="start_location_combo">
<combo_box.item label="郋迮 郈郋郅迮迡郇迮迮 邾迮郋" name="MyLastLocation"/>
@@ -36,7 +38,7 @@
</combo_box>
<check_box initial_value="邽邽郇訄" label="郋郕訄郱赲訄 郇訄 郕訄郇迮 赲郋迡訄" name="show_location_checkbox"/>
<text name="name_tags_textbox">
- 苠迮迣邽 邽邾迮郇邽:
+ 苠迮迣邽 邽邾迮郇:
</text>
<radio_group name="Name_Tag_Preference">
<radio_item label="郕郅." name="radio" value="0"/>
@@ -44,10 +46,10 @@
<radio_item label="迮邾迮郇郇邿 郈郋郕訄郱" name="radio3" value="2"/>
</radio_group>
<check_box label="郋迮 邽邾" name="show_my_name_checkbox1"/>
- <check_box label="邾迮郇訄 郈郋郅郱郋赲訄迮郅迮邿" name="show_slids" tool_tip="郋郕訄郱赲訄 邽邾 郈郋郅郱郋赲訄迮郅, 訄郕郋迮, 郕訄郕 bobsmith123"/>
- <check_box label="苠邽郅 迣郈郈" name="show_all_title_checkbox1" tool_tip="郋郕訄郱赲訄 邽郅 迣郈郈, 訄郕邽迮, 郕訄郕 Officer 邽郅邽 Member"/>
+ <check_box label="邾迮郇訄 郈郋郅郱郋赲訄迮郅迮邿" name="show_slids" tool_tip="郋郕訄郱赲訄 邽邾 郈郋郅郱郋赲訄迮郅, 郇訄郈邽邾迮, bobsmith123"/>
+ <check_box label="苠邽郅 迣郈郈" name="show_all_title_checkbox1" tool_tip="郋郕訄郱赲訄 邽郅 迣郈郈, 郇訄郈邽邾迮, Officer 邽郅邽 Member"/>
<check_box label="郋迡赲迮郕訄 迡郱迮邿" name="show_friends" tool_tip="郋迡赲迮邽赲訄 迮迣邽 邽邾迮郇 赲訄邽 迡郱迮邿"/>
- <check_box label="郋邾郋迮 郕訄郇郇迮 邽邾迮郇訄" name="display_names_check" tool_tip="郋郕訄郱赲訄 郕訄郇郇迮 邽邾迮郇訄 赲 訄迮, IM, 迮迣訄 邽邾迮郇 邽 郈."/>
+ <check_box label="衪郕訄郇郇迮 邽邾迮郇訄" name="display_names_check" tool_tip="郋郕訄郱赲訄 郕訄郇郇迮 邽邾迮郇訄 赲 訄迮, IM, 迮迣訄 邽邾迮郇 邽 郈."/>
<text name="inworld_typing_rg_label">
訄迠訄邽迮 郕郅訄赲邽 訇郕赲訄邾邽:
</text>
@@ -56,9 +58,9 @@
<radio_item label="邽赲郋迡邽 郕 郈迮迮邾迮迮郇邽 (. 迮. WASD)" name="radio_move" value="0"/>
</radio_group>
<text name="title_afk_text">
- 郕郅迮郇邽迮 迮迠邽邾訄 竄郋迮郅罈 迮迮郱:
+ 訄迡迮迠郕訄 迮迠邽邾訄 竄郋迮郅罈:
</text>
- <combo_box label="郕郅迮郇邽迮 迮迠邽邾訄 竄郋迮郅罈 迮迮郱:" name="afk">
+ <combo_box label="訄迡迮迠郕訄 迮迠邽邾訄 竄郋迮郅罈:" name="afk">
<combo_box.item label="2 邾邽郇" name="item0"/>
<combo_box.item label="5 邾邽郇" name="item1"/>
<combo_box.item label="10 邾邽郇" name="item2"/>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml
index 867307cc43..a7e826f5fc 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_graphics1.xml
@@ -42,10 +42,10 @@
<combo_box.item label="苤郋郅郇迮/郅郇訄 + 郋赲迮邽迮郅邽" name="2"/>
</combo_box>
<text name="reflection_label">
- 訄迠迮郇邽 郋 赲郋迡:
+ 郋迡訄 郋訄迠訄迮:
</text>
<combo_box name="Reflections">
- <combo_box.item label="邽郇邽邾訄郅郇迮" name="0"/>
+ <combo_box.item label="邽郇邽邾邾" name="0"/>
<combo_box.item label="訄郇迡訄 邽 迡迮迮赲" name="1"/>
<combo_box.item label="迮 訄邽郇迮 郋訇迮郕" name="2"/>
<combo_box.item label="迮 訄赲訄訄 邽 郋訇迮郕" name="3"/>
@@ -99,16 +99,16 @@
<check_box initial_value="邽邽郇訄" label="郈郈訄訄郇訄 郋邽郋赲郕訄" name="AvatarVertexProgram"/>
<check_box initial_value="邽邽郇訄" label="迡迮迠迡訄 訄赲訄訄訄" name="AvatarCloth"/>
<text name="TerrainDetailText">
- 迮訄郅邽郱訄邽 郅訄郇迡訄訄:
+ 訄郇迡訄:
</text>
<radio_group name="TerrainDetailRadio">
- <radio_item label="邽郱郕郋" name="0"/>
- <radio_item label="郋郕郋" name="2"/>
+ <radio_item label="訇郋" name="0"/>
+ <radio_item label="迮訄郅郇郋" name="2"/>
</radio_group>
--&gt;
</panel>
<button label="邽邾迮郇邽" label_selected="邽邾迮郇邽" name="Apply"/>
<button label="苤訇郋" name="Defaults"/>
<button label="郋郈郋郅郇邽迮郅郇郋" name="Advanced"/>
- <button label="郈郈訄訄郇迮" label_selected="郈郈訄訄郇迮" name="GraphicsHardwareButton"/>
+ <button label="郈郈訄訄訄" label_selected="郈郈訄訄訄" name="GraphicsHardwareButton"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_move.xml b/indra/newview/skins/default/xui/ru/panel_preferences_move.xml
index 331776902f..878a729113 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_move.xml
@@ -5,20 +5,35 @@
<text name="heading2">
赲郋邾訄邽迮郕訄 訄郇郋赲郕訄 郈郋郱邽邽邽 迡郅:
</text>
- <check_box label="苤郋郱迡訄郇邽/迮迡訄郕邽郋赲訄郇邽迮" name="edit_camera_movement" tool_tip="郋邽郱赲郋迡邽 訄赲郋邾訄邽迮郕郋迮 郈郋郱邽邽郋郇邽郋赲訄郇邽迮 郕訄邾迮 郈邽 赲郋迡迮 赲 迮迠邽邾 迮迡訄郕邽郋赲訄郇邽 邽 赲郋迡迮 邽郱 郇迮迣郋"/>
- <check_box label="郇迮郇郋" name="appearance_camera_movement" tool_tip="郋邽郱赲郋迡邽 訄赲郋邾訄邽迮郕郋迮 郈郋郱邽邽郋郇邽郋赲訄郇邽迮 郕訄邾迮 赲 迮迠邽邾迮 邽郱邾迮郇迮郇邽 赲郇迮郇郋邽"/>
- <check_box initial_value="邽邽郇訄" label="郋郕郋赲訄 郈訄郇迮郅" name="appearance_sidebar_positioning" tool_tip="郋邽郱赲郋迡邽 訄赲郋邾訄邽迮郕郋迮 郈郋郱邽邽郋郇邽郋赲訄郇邽迮 郕訄邾迮 迡郅 訇郋郕郋赲郋邿 郈訄郇迮郅邽"/>
+ <check_box label="郋郱迡訄郇邽/迮迡訄郕邽郋赲訄郇邽" name="edit_camera_movement" tool_tip="郋邽郱赲郋迡邽 訄赲郋邾訄邽迮郕郋迮 郈郋郱邽邽郋郇邽郋赲訄郇邽迮 郕訄邾迮 郈邽 赲郋迡迮 赲 迮迠邽邾 迮迡訄郕邽郋赲訄郇邽 邽 赲郋迡迮 邽郱 郇迮迣郋"/>
+ <check_box label="赲郇迮郇郋邽" name="appearance_camera_movement" tool_tip="郋邽郱赲郋迡邽 訄赲郋邾訄邽迮郕郋迮 郈郋郱邽邽郋郇邽郋赲訄郇邽迮 郕訄邾迮 赲 迮迠邽邾迮 邽郱邾迮郇迮郇邽 赲郇迮郇郋邽"/>
+ <text name="keyboard_lbl">
+ 郅訄赲邽訄訄:
+ </text>
+ <check_box label="郅訄赲邽邽 迮郅郋郕 赲迮迣迡訄 郈迮迮邾迮訄 邾迮郇" name="arrow_keys_move_avatar_check"/>
+ <check_box label="迮迣 郈郋郅迮 迡赲郋邿郇郋迣郋 郇訄迠訄邽 郕郅訄赲邽邽" name="tap_tap_hold_to_run"/>
+ <text name="mouse_lbl">
+ :
+ </text>
<check_box label="郋郕訄郱赲訄 邾迮郇 郈邽 郋訇郱郋迮 邾" name="first_person_avatar_visible"/>
<text name=" Mouse Sensitivity">
虴赲赲邽迮郅郇郋 邾邽:
</text>
<check_box label="郇赲迮邽郋赲訄" name="invert_mouse"/>
- <check_box label="郅訄赲邽邽 迮郅郋郕 赲迮迣迡訄 郈迮迮邾迮訄 邾迮郇" name="arrow_keys_move_avatar_check"/>
- <check_box label="迮迣 郈郋郅迮 迡赲郋邿郇郋迣郋 郇訄迠訄邽 郕郅訄赲邽邽" name="tap_tap_hold_to_run"/>
- <check_box label="赲郋邿郇郋邿 迮郅郋郕 迡郅:" name="double_click_chkbox"/>
- <radio_group name="double_click_action">
- <radio_item label="苠迮郅迮郈郋" name="radio_teleport"/>
- <radio_item label="赲郋郈邽郅郋" name="radio_autopilot"/>
- </radio_group>
+ <text name="single_click_action_lbl">
+ 迡邽郇 迮郅郋郕 郇訄 郱迮邾郅迮:
+ </text>
+ <combo_box name="single_click_action_combo">
+ <combo_box.item label="迮郱 迡迮邿赲邽" name="0"/>
+ <combo_box.item label="迮迮邾迮迮郇邽迮 赲 郋郕 迮郅郕訄" name="1"/>
+ </combo_box>
+ <text name="double_click_action_lbl">
+ 赲郋邿郇郋邿 迮郅郋郕 郇訄 郱迮邾郅迮:
+ </text>
+ <combo_box name="double_click_action_combo">
+ <combo_box.item label="迮郱 迡迮邿赲邽" name="0"/>
+ <combo_box.item label="迮迮邾迮迮郇邽迮 赲 郋郕 迮郅郕訄" name="1"/>
+ <combo_box.item label="苠迮郅迮郈郋訄邽 赲 郋郕 迮郅郕訄" name="2"/>
+ </combo_box>
<button label="迣邽迮 郋邿赲訄" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml
index f3c7e43022..20bb839eed 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_privacy.xml
@@ -20,7 +20,7 @@
<check_box label="迮郕訄 赲迮邾迮郇邽 赲 郕訄迠迡郋邿 郋郕迮 迠郇訄郅訄 訄訄" name="show_timestamps_check_im"/>
<check_box label="迮郕訄 赲迮邾迮郇邽 赲 邽邾迮郇邽 訄邿郅訄 迠郇訄郅訄." name="logfile_name_datestamp"/>
<text name="log_path_desc">
- 訄郱邾迮迮郇邽迮 迠郇訄郅郋赲:
+ 訄郈郕訄 迠郇訄郅郋赲:
</text>
<button label="訇郱郋" label_selected="訇郱郋" name="log_path_button"/>
<button label="虴迮郇邿 郈邽郋郕" name="block_list"/>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
index 9f23e2f5f7..db88189169 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_setup.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="訄郋邿郕訄" name="Input panel">
+<panel label="郋郇邽迣訄邽" name="Input panel">
<text name="Network:">
苤迮:
</text>
<text name="Maximum bandwidth">
- 訄郕邽邾訄郅郇訄 邽邽郇訄 郕訄郇訄郅訄
+ 訄郕. 邽邽郇訄 郕訄郇訄郅訄
</text>
<text name="text_box2">
訇邽/
@@ -32,5 +32,5 @@
<text name="Proxy Settings:">
訄郋邿郕邽 郈郋郕邽-迮赲迮訄:
</text>
- <button label="訄迡訄 郇訄郋邿郕邽 郈郋郕邽" label_selected="訇郱郋" name="set_proxy"/>
+ <button label="訄迡訄 郇訄郋邿郕邽" label_selected="訇郱郋" name="set_proxy"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml
index 123989966c..bf673750d2 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_sound.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="赲郕邽" name="Preference Media panel">
<panel.string name="middle_mouse">
- 苤迮迡郇 郕郇郋郈郕訄 邾邽
+ 迮迡郇 郕郇郋郈郕 邾邽
</panel.string>
- <slider label="郅訄赲郇邿 迮迣郅郋" name="System Volume"/>
+ <slider label="訇訄 迣郋邾郕郋" name="System Volume"/>
<check_box initial_value="邽邽郇訄" name="mute_when_minimized"/>
<text name="mute_chb_label">
訄迣郅訄, 郕郋迣迡訄 赲迮郇郋
@@ -24,11 +24,11 @@
訄郋邿郕邽 迣郋郅郋郋赲郋迣郋 訄訄
</text>
<text name="Listen from">
- 郋郅邽赲訄郇邽迮 郈郋郱邽邽邽:
+ 苤郅訄 :
</text>
<radio_group name="ear_location">
- <radio_item label="訄邾迮訄" name="0"/>
- <radio_item label="赲訄訄" name="1"/>
+ <radio_item label="訄邾迮" name="0"/>
+ <radio_item label="赲訄訄訄" name="1"/>
</radio_group>
<check_box label="訇 訄赲訄訄訄 迡赲邽迣訄 郈邽 訄郱迣郋赲郋迮" name="enable_lip_sync"/>
<check_box label="郕郅訄/赲郕郅訄 邾邽郕郋郋郇, 郕郋迣迡訄 郇訄迠邽邾訄:" name="push_to_talk_toggle_check" tool_tip=" 迮迠邽邾迮 郈迮迮郕郅迮郇邽 苠 郇訄迠訄邽迮 邽 郋郈郕訄郇邽迮 迡訄郇郇郋邿 郕郅訄赲邽邽 赲郕郅訄迮/赲郕郅訄迮 邾邽郕郋郋郇. 郅邽 迮迠邽邾 郈迮迮郕郅迮郇邽 郋郕郅迮郇, 郋 邾邽郕郋郋郇 郈迮迮迡訄迮 迣郋郅郋, 郋郅郕郋 郕郋迣迡訄 郕郅訄赲邽訄 郇訄迠訄訄."/>
diff --git a/indra/newview/skins/default/xui/ru/panel_sound_devices.xml b/indra/newview/skins/default/xui/ru/panel_sound_devices.xml
index 4a57ed4f4f..98dab288a3 100644
--- a/indra/newview/skins/default/xui/ru/panel_sound_devices.xml
+++ b/indra/newview/skins/default/xui/ru/panel_sound_devices.xml
@@ -20,6 +20,6 @@
</text>
<slider_bar initial_value="1.0" name="mic_volume_slider" tool_tip="郱邾迮郇邽迮 郱郇訄迮郇邽迮, 邽郈郋郅郱 郈郋郅郱郇郋郕"/>
<text name="wait_text">
- 迠邽迡訄邿迮
+ 郋迡郋迠迡邽迮
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_status_bar.xml b/indra/newview/skins/default/xui/ru/panel_status_bar.xml
index ddf63d69c2..6822244196 100644
--- a/indra/newview/skins/default/xui/ru/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/ru/panel_status_bar.xml
@@ -17,12 +17,9 @@
</panel.string>
<panel name="balance_bg">
<text name="balance" tool_tip="虳迮郅郕郇邽迮 迡郅 郋訇郇郋赲郅迮郇邽 赲訄迮迣郋 訇訄郅訄郇訄 L$" value="L$20"/>
- <button label="苺苠衧 L$" name="buyL" tool_tip="虳迮郅郕郇邽迮 迡郅 郈郋郕郈郕邽 L$"/>
+ <button label="郈邽 L$" name="buyL" tool_tip="虳迮郅郕郇邽迮 迡郅 郈郋郕郈郕邽 L$"/>
+ <button label="苠郋迣郋赲邿 迮郇" name="goShop" tool_tip="郕 郋迣郋赲邿 迮郇 Second Life"/>
</panel>
- <combo_box name="mode_combo" tool_tip="訇迮邽迮 迮迠邽邾. 郇郋赲郇郋邿 迡郅 訇郋迣郋 邽 郈郋郋迣郋 郋郱郇訄郕郋邾郅迮郇邽 邽迣郋邿, 訄 訄郕迠迮 郋訇迮郇邽. 訄邽迮郇郇邿 迡郅 迡郋郈訄 郕 訇郋郅迮迮 邽郋郕邽邾 赲郋郱邾郋迠郇郋邾.">
- <combo_box.item label="郇郋赲郇郋邿 迮迠邽邾" name="Basic"/>
- <combo_box.item label="訄邽迮郇郇邿 迮迠邽邾" name="Advanced"/>
- </combo_box>
<text name="TimeText" tool_tip="苠迮郕迮迮 赲迮邾 (邽郋郋郕迮訄郇郕郋迮)">
00:00 (邽郋郋郕迮訄郇郕郋迮 赲迮邾)
</text>
diff --git a/indra/newview/skins/default/xui/ru/strings.xml b/indra/newview/skins/default/xui/ru/strings.xml
index 44440ea542..df657b39c6 100644
--- a/indra/newview/skins/default/xui/ru/strings.xml
+++ b/indra/newview/skins/default/xui/ru/strings.xml
@@ -1273,6 +1273,9 @@ support@secondlife.com.
<string name="Marketplace Error Internal Import">
邽訇郕訄. 衪訄 赲迮 郋郱迡訄迮 郈郋訇郅迮邾. 郋赲郋邽迮 郈郋郈郕 郈郋郱迠迮.
</string>
+ <string name="Open landmarks">
+ 郕 郱訄郕郅訄迡郕邽
+ </string>
<string name="no_transfer" value="(郇迮 郈迮迮迡訄迮)"/>
<string name="no_modify" value="(郇迮 邽郱邾迮郇迮)"/>
<string name="no_copy" value="(郇迮 郕郋郈邽迮)"/>
@@ -1937,7 +1940,7 @@ support@secondlife.com.
郋赲邿 郕邽郈
</string>
<string name="BusyModeResponseDefault">
- 苺 迠邽迮郅, 郕郋郋郋邾 赲 訄迡迮郋赲訄郅邽 郋郋訇迮郇邽迮, 郱訄迡訄郇 訄 竄迮 訇迮郈郋郕郋邽罈. 訄迮 郋郋訇迮郇邽迮 赲迮 訄赲郇郋 訇迡迮 郋郋訇訄迠迮郇郋 郇訄 郈訄郇迮郅邽 IM 迡郅 郈郋邾郋訄 郈郋郱迠迮.
+ 苺 訄迡迮訄訄 赲訄迮迣郋 郋郋訇迮郇邽 郱訄迡訄郇 訄 竄迮 訇迮郈郋郕郋邽罈. 訄迮 郋郋訇迮郇邽迮 赲迮 訄赲郇郋 訇迡迮 郋郋訇訄迠迮郇郋 郇訄 郈訄郇迮郅邽 IM 迡郅 郈郋邾郋訄 郈郋郱迠迮.
</string>
<string name="MuteByName">
(郈郋 邽邾迮郇邽)
@@ -4248,8 +4251,8 @@ support@secondlife.com.
<string name="Female - Wow">
迮郇邽郇訄 !
</string>
- <string name="/bow1">
- /郈郋郕郅郋郇1
+ <string name="/bow">
+ /郈郋郕郅郋郇
</string>
<string name="/clap">
/郅郋郈郇
@@ -4772,4 +4775,172 @@ support@secondlife.com.
<string name="ParticleHiding">
虴訄邽 郕
</string>
+ <string name="Command_AboutLand_Label">
+ 郱迮邾郅迮
+ </string>
+ <string name="Command_Appearance_Label">
+ 郇迮郇郋
+ </string>
+ <string name="Command_Avatar_Label">
+ 赲訄訄
+ </string>
+ <string name="Command_Build_Label">
+ 苤郋邽迮郅赲郋
+ </string>
+ <string name="Command_Chat_Label">
+ 虴訄
+ </string>
+ <string name="Command_Compass_Label">
+ 郋邾郈訄
+ </string>
+ <string name="Command_Destinations_Label">
+ 迮訄
+ </string>
+ <string name="Command_Gestures_Label">
+ 迮
+ </string>
+ <string name="Command_HowTo_Label">
+ 郇郕邽邽
+ </string>
+ <string name="Command_Inventory_Label">
+ 郇赲迮郇訄
+ </string>
+ <string name="Command_Map_Label">
+ 訄訄
+ </string>
+ <string name="Command_Marketplace_Label">
+ 苠郋迣郋赲邿 迮郇
+ </string>
+ <string name="Command_MiniMap_Label">
+ 邽郇邽郕訄訄
+ </string>
+ <string name="Command_Move_Label">
+ 迮迮邾迮邽
+ </string>
+ <string name="Command_People_Label">
+ 迡邽
+ </string>
+ <string name="Command_Picks_Label">
+ 郋迡訇郋郕訄
+ </string>
+ <string name="Command_Places_Label">
+ 迮訄
+ </string>
+ <string name="Command_Preferences_Label">
+ 訄郋邿郕邽
+ </string>
+ <string name="Command_Profile_Label">
+ 郋邽郅
+ </string>
+ <string name="Command_Search_Label">
+ 郋邽郕
+ </string>
+ <string name="Command_Snapshot_Label">
+ 苤郇邽邾郋郕
+ </string>
+ <string name="Command_Speak_Label">
+ 郋赲郋邽
+ </string>
+ <string name="Command_View_Label">
+ 邽迡
+ </string>
+ <string name="Command_Voice_Label">
+ 郋郅郋訄 郋訇迮迮迡郇邽郕郋赲
+ </string>
+ <string name="Command_AboutLand_Tooltip">
+ 郇郋邾訄邽 郋 郈郋迮訄迮邾郋邿 赲訄邾邽 郱迮邾郅迮
+ </string>
+ <string name="Command_Appearance_Tooltip">
+ 苤邾迮郇邽 訄赲訄訄
+ </string>
+ <string name="Command_Avatar_Tooltip">
+ 訇迮邽迮 赲迮 訄赲訄訄
+ </string>
+ <string name="Command_Build_Tooltip">
+ 郋郋迮郇邽迮 郋訇迮郕郋赲 邽 郋邾邽郋赲訄郇邽迮 郅訄郇迡訄訄
+ </string>
+ <string name="Command_Chat_Tooltip">
+ 訇邾迮郇邽赲訄邿迮 迮郕郋赲邾邽 迮郈郅邽郕訄邾邽 郅迡邾邽 赲郋郕迣 赲訄
+ </string>
+ <string name="Command_Compass_Tooltip">
+ 郋邾郈訄
+ </string>
+ <string name="Command_Destinations_Tooltip">
+ 郇迮迮郇迮 邾迮訄
+ </string>
+ <string name="Command_Gestures_Tooltip">
+ 迮 迡郅 訄赲訄訄訄
+ </string>
+ <string name="Command_HowTo_Tooltip">
+ 郈郋郅郇迮郇邽迮 邽郈邽郇 郱訄迡訄
+ </string>
+ <string name="Command_Inventory_Tooltip">
+ 郋邾郋 邽 邽郈郋郅郱郋赲訄郇邽迮 赲訄迮迣郋 邽邾迮赲訄
+ </string>
+ <string name="Command_Map_Tooltip">
+ 訄訄 邾邽訄
+ </string>
+ <string name="Command_Marketplace_Tooltip">
+ 郋郕郈郕邽
+ </string>
+ <string name="Command_MiniMap_Tooltip">
+ 郋郕訄郱訄 郅迡迮邿 郈郋訇郅邽郱郋邽
+ </string>
+ <string name="Command_Move_Tooltip">
+ 迮迮邾迮迮郇邽迮 訄赲訄訄訄
+ </string>
+ <string name="Command_People_Tooltip">
+ 郱, 迣郈郈 邽 郅迡邽 郈郋訇郅邽郱郋邽
+ </string>
+ <string name="Command_Picks_Tooltip">
+ 迮訄, 郕郋郋迮 訇迡 郈郋郕訄郱訄郇 赲 赲訄迮邾 郈郋邽郅迮 郕訄郕 邽郱訇訄郇郇郋迮
+ </string>
+ <string name="Command_Places_Tooltip">
+ 苤郋訄郇迮郇郇迮 赲訄邾邽 邾迮訄
+ </string>
+ <string name="Command_Preferences_Tooltip">
+ 訄郋邿郕邽
+ </string>
+ <string name="Command_Profile_Tooltip">
+ 迮迡訄郕邽郋赲訄郇邽迮 邽郅邽 郈郋邾郋 赲訄迮迣郋 郈郋邽郅
+ </string>
+ <string name="Command_Search_Tooltip">
+ 郋邽郕 邾迮, 郋訇邽邿, 郅迡迮邿
+ </string>
+ <string name="Command_Snapshot_Tooltip">
+ 苤迡迮郅訄 郇邽邾郋郕
+ </string>
+ <string name="Command_Speak_Tooltip">
+ 郋赲郋邽迮 郅迡邾邽 赲郋郕迣 赲訄 郈郋邾郋 邾邽郕郋郋郇訄
+ </string>
+ <string name="Command_View_Tooltip">
+ 郱邾迮郇迮郇邽迮 迣郅訄 郕訄邾迮
+ </string>
+ <string name="Command_Voice_Tooltip">
+ 迡邽 郋郕郋郅郋 赲訄 郋郈郋郋訇郇郋 迣郋赲郋邽
+ </string>
+ <string name="Retain%">
+ 訄郋郕%
+ </string>
+ <string name="Detail">
+ 迮訄郅邽郱訄邽
+ </string>
+ <string name="Better Detail">
+ 郋郅迮迮 迡迮訄郅郇郋
+ </string>
+ <string name="Surface">
+ 郋赲迮郇郋
+ </string>
+ <string name="Solid">
+ 苤郈郅郋郇郋邿
+ </string>
+ <string name="Wrap">
+ 訇郋郅郋郕訄
+ </string>
+ <string name="Preview">
+ 迮迡赲訄邽迮郅郇邿 郈郋邾郋
+ </string>
+ <string name="Normal">
+ 郋邾訄郅郇邿
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/tr/floater_about.xml b/indra/newview/skins/default/xui/tr/floater_about.xml
index 2fdbafdfb4..998890b85c 100644
--- a/indra/newview/skins/default/xui/tr/floater_about.xml
+++ b/indra/newview/skins/default/xui/tr/floater_about.xml
@@ -10,7 +10,7 @@
<floater.string name="AboutPosition">
&lt;nolink&gt;[HOSTNAME]&lt;/nolink&gt; ([HOSTIP]) 羹zerinde bulunan [REGION] i癟erisinde [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] konumundas覺n覺z
[SERVER_VERSION]
-[[SERVER_RELEASE_NOTES_URL] [S羹r羹m Notlar覺]]
+[SERVER_RELEASE_NOTES_URL]
</floater.string>
<floater.string name="AboutSystem">
CPU: [CPU]
@@ -37,6 +37,9 @@ Ses Sunucusu S羹r羹m羹: [VOICE_VERSION]
<floater.string name="AboutTraffic">
Kaybolan Paketler: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)
</floater.string>
+ <floater.string name="ErrorFetchingServerReleaseNotesURL">
+ Sunucu s羹r羹m羹 notlar覺 URL&apos;si al覺n覺rken hata olutu.
+ </floater.string>
<tab_container name="about_tab">
<panel label="Bilgi" name="support_panel">
<button label="Panoya Kopyala" name="copy_btn"/>
diff --git a/indra/newview/skins/default/xui/tr/floater_about_land.xml b/indra/newview/skins/default/xui/tr/floater_about_land.xml
index 6256f954b2..c44722f4ba 100644
--- a/indra/newview/skins/default/xui/tr/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/tr/floater_about_land.xml
@@ -212,19 +212,19 @@
B繹lge Nesne Bonusu Fakt繹r羹: [BONUS]
</text>
<text name="Simulator primitive usage:">
- 襤lkel Kullan覺m:
+ B繹lge kapasitesi:
</text>
<text name="objects_available">
[COUNT] / [MAX] ([AVAILABLE]) uygun
</text>
<text name="Primitives parcel supports:">
- Prim parsel destei:
+ Parsel arazi kapasitesi:
</text>
<text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
- Parseldeki prims:
+ Parsel arazi etkisi:
</text>
<text name="total_objects_text">
[COUNT]
diff --git a/indra/newview/skins/default/xui/tr/floater_avatar.xml b/indra/newview/skins/default/xui/tr/floater_avatar.xml
new file mode 100644
index 0000000000..fc9e3c8a9b
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_avatar.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Avatar" title="AVATAR SE襤C襤"/>
diff --git a/indra/newview/skins/default/xui/tr/floater_camera.xml b/indra/newview/skins/default/xui/tr/floater_camera.xml
index 066b7cc933..4161e6ea52 100644
--- a/indra/newview/skins/default/xui/tr/floater_camera.xml
+++ b/indra/newview/skins/default/xui/tr/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="GSTER">
<floater.string name="rotate_tooltip">
Odak Etraf覺nda Kameray覺 D繹nd羹r
</floater.string>
@@ -13,7 +13,7 @@
Kamera modlar覺
</floater.string>
<floater.string name="pan_mode_title">
- Y繹r羹nge Deiimi - Yak覺nlat覺rma - Kameray覺 evirme
+ Y繹r羹nge - Yak覺nl. - Kameray覺 vr.
</floater.string>
<floater.string name="presets_mode_title">
n Ayarl覺 G繹r羹n羹mler
diff --git a/indra/newview/skins/default/xui/tr/floater_chat_bar.xml b/indra/newview/skins/default/xui/tr/floater_chat_bar.xml
new file mode 100644
index 0000000000..d2385e6be3
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_chat_bar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="chat_bar" title="YAKINDAK襤 SOHBET">
+ <panel>
+ <line_editor label="Sohbet etmek i癟in buraya t覺klay覺n." name="chat_box" tool_tip="S繹ylemek i癟in Enter, ba覺rmak i癟in Ctrl+Enter yap覺n"/>
+ <button name="show_nearby_chat" tool_tip="yak覺n sohbet g羹nl羹羹n羹 g繹sterir/gizler"/>
+ </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/tr/floater_day_cycle_options.xml
deleted file mode 100644
index 9e706d9892..0000000000
--- a/indra/newview/skins/default/xui/tr/floater_day_cycle_options.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Day Cycle Floater" title="GN DNGS DZENLEY襤C襤">
- <tab_container name="Day Cycle Tabs">
- <panel label="G羹n D繹ng羹s羹" name="Day Cycle">
- <multi_slider initial_value="0" name="WLTimeSlider"/>
- <multi_slider initial_value="0" name="WLDayCycleKeys"/>
- <text name="WL12am">
- 12繹繹
- </text>
- <text name="WL3am">
- 3繹繹
- </text>
- <text name="WL6am">
- 6繹繹
- </text>
- <text name="WL9amHash">
- 9繹繹
- </text>
- <text name="WL12pmHash">
- 12繹s
- </text>
- <text name="WL3pm">
- 3繹s
- </text>
- <text name="WL6pm">
- 6繹s
- </text>
- <text name="WL9pm">
- 9繹s
- </text>
- <text name="WL12am2">
- 12繹繹
- </text>
- <text name="WL12amHash">
- |
- </text>
- <text name="WL3amHash">
- I
- </text>
- <text name="WL6amHash">
- |
- </text>
- <text name="WL9amHash2">
- I
- </text>
- <text name="WL12pmHash2">
- |
- </text>
- <text name="WL3pmHash">
- I
- </text>
- <text name="WL6pmHash">
- |
- </text>
- <text name="WL9pmHash">
- I
- </text>
- <text name="WL12amHash2">
- |
- </text>
- <button label="Anahtar Ekle" label_selected="Anahtar Ekle" name="WLAddKey"/>
- <button label="Anahtar覺 Sil" label_selected="Anahtar覺 Sil" name="WLDeleteKey"/>
- <text name="WLCurKeyFrameText">
- Anahtar Kare Ayarlar覺:
- </text>
- <text name="WLCurKeyTimeText">
- Anahtar Zaman覺:
- </text>
- <spinner label="Saat" name="WLCurKeyHour"/>
- <spinner label="Dak" name="WLCurKeyMin"/>
- <text name="WLCurKeyTimeText2">
- Anahtar n Ayar覺:
- </text>
- <combo_box label="n Ayar" name="WLKeyPresets"/>
- <text name="DayCycleText">
- Yasla:
- </text>
- <combo_box label="5 dak" name="WLSnapOptions"/>
- <text name="DayCycleText2">
- D繹ng羹 Uzunluu:
- </text>
- <spinner label="Saat" name="WLLengthOfDayHour"/>
- <spinner label="Dak" name="WLLengthOfDayMin"/>
- <spinner label="San" name="WLLengthOfDaySec"/>
- <text name="DayCycleText3">
- nizleme:
- </text>
- <button label="Oyna" label_selected="Oyna" name="WLAnimSky"/>
- <button label="Durdur!" label_selected="Durdur" name="WLStopAnimSky"/>
- <button label="Gayrimenkul Saati Kullan" label_selected="Gayrimenkul Saatine Git" name="WLUseLindenTime"/>
- <button label="Test G羹n羹n羹 Kaydet" label_selected="Test G羹n羹n羹 Kaydet" name="WLSaveDayCycle"/>
- <button label="Test G羹n羹n羹 Y羹kle" label_selected="Test G羹n羹n羹 Y羹kle" name="WLLoadDayCycle"/>
- </panel>
- </tab_container>
-</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_destinations.xml b/indra/newview/skins/default/xui/tr/floater_destinations.xml
new file mode 100644
index 0000000000..4504366d63
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_destinations.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Destinations" title="HEDEF KONUMLAR"/>
diff --git a/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml b/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml
index a5cbe3a416..e2e87ddf1e 100644
--- a/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml
+++ b/indra/newview/skins/default/xui/tr/floater_edit_day_cycle.xml
@@ -36,31 +36,31 @@
<button label="Anahtar Ekle" label_selected="Anahtar Ekle" name="WLAddKey"/>
<button label="Anahtar覺 Sil" label_selected="Anahtar覺 Sil" name="WLDeleteKey"/>
<text name="WL12am">
- 12繹繹
+ 12
</text>
<text name="WL3am">
- 3繹繹
+ 3
</text>
<text name="WL6am">
- 6繹繹
+ 6
</text>
<text name="WL9amHash">
- 9繹繹
+ 9
</text>
<text name="WL12pmHash">
- 12繹s
+ 24
</text>
<text name="WL3pm">
- 3繹s
+ 15
</text>
<text name="WL6pm">
- 6繹s
+ 18
</text>
<text name="WL9pm">
- 9繹s
+ 21
</text>
<text name="WL12am2">
- 12繹繹
+ 12
</text>
<text name="WL12amHash">
|
@@ -97,7 +97,7 @@
<text name="WLCurKeyTimeText">
Zaman:
</text>
- <time name="time" value="6:00 "/>
+ <time name="time" value="6:00"/>
<check_box label="Bunu yeni g羹n d繹ng羹m yap" name="make_default_cb"/>
<button label="Kaydet" name="save"/>
<button label="襤ptal" name="cancel"/>
diff --git a/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml b/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml
index 16564963e5..0e9f86148d 100644
--- a/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml
+++ b/indra/newview/skins/default/xui/tr/floater_edit_sky_preset.xml
@@ -86,21 +86,21 @@
|
</text>
<text name="WL12am">
- 12繹繹
+ 12
</text>
<text name="WL6am">
- 6繹繹
+ 6
</text>
<text name="WL12pmHash">
- 12繹s
+ 24
</text>
<text name="WL6pm">
- 6繹s
+ 18
</text>
<text name="WL12am2">
- 12繹繹
+ 12
</text>
- <time name="WLDayTime" value="6:00 "/>
+ <time name="WLDayTime" value="6:00"/>
<text name="WLEastAngleText">
Dou A癟覺s覺
</text>
diff --git a/indra/newview/skins/default/xui/tr/floater_fast_timers.xml b/indra/newview/skins/default/xui/tr/floater_fast_timers.xml
new file mode 100644
index 0000000000..5736bda45e
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_fast_timers.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="fast_timers">
+ <string name="pause">
+ Duraklat
+ </string>
+ <string name="run">
+ Ko
+ </string>
+ <button label="Duraklat" name="pause_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_how_to.xml b/indra/newview/skins/default/xui/tr/floater_how_to.xml
new file mode 100644
index 0000000000..a42fe0b122
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_how_to.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_how_to" title="NASIL YAPILIR"/>
diff --git a/indra/newview/skins/default/xui/tr/floater_map.xml b/indra/newview/skins/default/xui/tr/floater_map.xml
index 36ec097cc4..7d6c314f04 100644
--- a/indra/newview/skins/default/xui/tr/floater_map.xml
+++ b/indra/newview/skins/default/xui/tr/floater_map.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Map" title="">
+<floater name="Map" title="M襤N襤-HAR襤TA">
<floater.string name="ToolTipMsg">
[REGION](Haritay覺 a癟mak i癟in 癟ift t覺kla, yatay hareket i癟in shift 癟ek)
</floater.string>
@@ -7,7 +7,7 @@
[REGION](I覺nlamak i癟in 癟ift t覺kla, yatay hareket i癟in shift 癟ek)
</floater.string>
<floater.string name="mini_map_caption">
- M襤N襤HAR襤TA
+ Mini-harita
</floater.string>
<text label="K" name="floater_map_north">
K
diff --git a/indra/newview/skins/default/xui/tr/floater_model_preview.xml b/indra/newview/skins/default/xui/tr/floater_model_preview.xml
index 7388d236ed..339545f96e 100644
--- a/indra/newview/skins/default/xui/tr/floater_model_preview.xml
+++ b/indra/newview/skins/default/xui/tr/floater_model_preview.xml
@@ -1,10 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Model Preview" title="Modeli Kar覺ya Y羹kle">
- <string name="status_idle">
- Bota
- </string>
+<floater name="Model Preview" title="MODEL襤 KARIYA YKLE">
+ <string name="status_idle"/>
<string name="status_parse_error">
- Dae ayr覺t覺rma sorunu - ayr覺nt覺lar i癟in g羹nl羹e bak覺n.
+ Hata: Tarih ayr覺t覺rma sorunu - ayr覺nt覺lar i癟in g羹nl羹e bak覺n.
</string>
<string name="status_reading_file">
Y羹kleniyor...
@@ -51,6 +49,9 @@
<string name="mesh_status_missing_lod">
Gereken ayr覺nt覺 seviyesi eksik.
</string>
+ <string name="mesh_status_invalid_material_list">
+ Ayr覺nt覺 seviyesi malzemeleri, referans modelin bir alt k羹mesi deil.
+ </string>
<string name="layer_all">
T羹m羹
</string>
@@ -63,188 +64,211 @@
<string name="tbd">
ileride belirlenecektir
</string>
- <text name="name_label">
- Ad:
- </text>
- <text name="lod_label">
- nizleme:
- </text>
- <combo_box name="preview_lod_combo" tool_tip="nizleme ilemesinde g繹r羹lecek ayr覺nt覺 seviyesi">
- <combo_item name="high">
- Ayr覺nt覺 Seviyesi: Y羹ksek
- </combo_item>
- <combo_item name="medium">
- Ayr覺nt覺 Seviyesi: Orta
- </combo_item>
- <combo_item name="low">
- Ayr覺nt覺 Seviyesi: D羹羹k
- </combo_item>
- <combo_item name="lowest">
- Ayr覺nt覺 Seviyesi: En D羹羹k
- </combo_item>
- </combo_box>
- <text name="warning_title">
- UYARI:
- </text>
- <text name="warning_message">
- Bu modelin Second Life sunucular覺na nihai kar覺ya y羹klemesini tamamlayamayacaks覺n覺z. rg羹 modellerinin kar覺ya y羹klenmesi i癟in etkinletirmenin [[VURL] nas覺l yap覺laca覺n覺 繹renin].
- </text>
- <text name="weights_text">
- Kar覺dan Y羹kle:
-Fizik:
-Sunucu:
-
-Prim edeerleri:
- </text>
- <text name="weights">
- [ST]
-[PH]
-[SIM]
-
-[EQ]
- </text>
- <tab_container name="import_tab">
- <panel label="Ayr覺nt覺 Seviyesi" name="lod_panel">
- <text name="lod_table_header">
- Ayr覺nt覺 Seviyesini Se癟:
- </text>
- <text name="high_label" value="Y羹ksek"/>
- <text name="high_triangles" value="0"/>
- <text name="high_vertices" value="0"/>
- <text name="medium_label" value="Orta"/>
- <text name="medium_triangles" value="0"/>
- <text name="medium_vertices" value="0"/>
- <text name="low_label" value="D羹羹k"/>
- <text name="low_triangles" value="0"/>
- <text name="low_vertices" value="0"/>
- <text name="lowest_label" value="En D羹羹k"/>
- <text name="lowest_triangles" value="0"/>
- <text name="lowest_vertices" value="0"/>
- <text name="lod_table_footer">
- Ayr覺nt覺 Seviyesi: [DETAIL]
- </text>
- <radio_group name="lod_file_or_limit" value="lod_from_file">
- <radio_item label="Dosyadan y羹kle" name="lod_from_file"/>
- <radio_item label="Otomatik olutur" name="lod_auto_generate"/>
- <radio_item label="Hi癟biri" name="lod_none"/>
- </radio_group>
- <button label="G繹zat..." name="lod_browse"/>
- <combo_box name="lod_mode">
- <combo_item name="triangle_limit">
- 癟gen Limiti
- </combo_item>
- <combo_item name="error_threshold">
- Hata Eii
- </combo_item>
- </combo_box>
- <text name="build_operator_text">
- 襤na 襤leci:
+ <panel name="left_panel">
+ <panel name="model_name_representation_panel">
+ <text name="name_label">
+ Model ad覺:
</text>
- <text name="queue_mode_text">
- Kuyruk Modu:
+ <text name="model_category_label">
+ Bu modelin temsil ettii...
</text>
- <combo_box name="build_operator">
- <combo_item name="edge_collapse">
- Kenar B羹t羹nletirme
- </combo_item>
- <combo_item name="half_edge_collapse">
- Yar覺m Kenar B羹t羹nletirme
- </combo_item>
- </combo_box>
- <combo_box name="queue_mode">
- <combo_item name="greedy">
- A癟g繹zl羹
- </combo_item>
- <combo_item name="lazy">
- Tembel
- </combo_item>
- <combo_item name="independent">
- Ba覺ms覺z
- </combo_item>
+ <combo_box name="model_category_combo">
+ <combo_item label="Birini Se癟in..." name="Choose one"/>
+ <combo_item label="Avatar ekli" name="Avatar shape"/>
+ <combo_item label="Avatar aksesuar覺" name="Avatar attachment"/>
+ <combo_item label="Hareket eden nesne (ara癟, hayvan)" name="Moving object (vehicle, animal)"/>
+ <combo_item label="Bina Bileeni" name="Building Component"/>
+ <combo_item label="B羹y羹k, hareketsiz, vs." name="Large, non moving etc"/>
+ <combo_item label="Daha k羹癟羹k, hareketsiz, vs." name="Smaller, non-moving etc"/>
+ <combo_item label="Bunlardan herhangi biri deil" name="Not really any of these"/>
</combo_box>
- <text name="border_mode_text">
- S覺n覺r Modu:
- </text>
- <text name="share_tolderance_text">
- Paylama Tolerans覺:
- </text>
- <combo_box name="border_mode">
- <combo_item name="border_unlock">
- Kilidi Kald覺r
- </combo_item>
- <combo_item name="border_lock">
- Kilitle
- </combo_item>
- </combo_box>
- <text name="crease_label">
- K覺vr覺m A癟覺s覺:
- </text>
- <spinner name="crease_angle" value="75"/>
</panel>
- <panel label="Fizik" name="physics_panel">
- <panel name="physics geometry">
- <radio_group name="physics_load_radio" value="physics_load_from_file">
- <radio_item label="Dosya:" name="physics_load_from_file"/>
- <radio_item label="Ayr覺nt覺 Seviyesini Kullan:" name="physics_use_lod"/>
- </radio_group>
- <combo_box name="physics_lod_combo" tool_tip="Fizik ekli i癟in kullan覺lacak ayr覺nt覺 seviyesi">
- <combo_item name="physics_lowest">
- En D羹羹k
- </combo_item>
- <combo_item name="physics_low">
- D羹羹k
- </combo_item>
- <combo_item name="physics_medium">
- Orta
- </combo_item>
- <combo_item name="physics_high">
- Y羹ksek
- </combo_item>
- </combo_box>
- <button label="G繹zat..." name="physics_browse"/>
+ <tab_container name="import_tab">
+ <panel label="Ayr覺nt覺 Seviyesi" name="lod_panel" title="Ayr覺nt覺 Seviyesi">
+ <text initial_value="Kaynak" name="source" value="Kaynak"/>
+ <text initial_value="癟genler" name="triangles" value="癟genler"/>
+ <text initial_value="K繹eler" name="vertices" value="K繹eler"/>
+ <text initial_value="Y羹ksek" name="high_label" value="Y羹ksek"/>
+ <button label="G繹zat..." 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="Orta" name="medium_label" value="Orta"/>
+ <button label="G繹zat..." 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="D羹羹k" name="low_label" value="D羹羹k"/>
+ <button label="G繹zat..." 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="En D羹羹k" name="lowest_label" value="En D羹羹k"/>
+ <button label="G繹zat..." 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="Normalleri Olutur" name="gen_normals"/>
+ <text initial_value="K覺vr覺m A癟覺s覺:" name="crease_label" value="K覺vr覺m A癟覺s覺:"/>
+ <spinner name="crease_angle" value="75"/>
</panel>
- <panel name="physics analysis">
- <slider label="D羹zeltme:" name="Smooth"/>
- <check_box label="Delikleri Kapa (yava)" name="Close Holes (Slow)"/>
- <button label="繹z羹mle" name="Decompose"/>
- <button label="襤ptal" name="decompose_cancel"/>
+ <panel label="Fizik" name="physics_panel">
+ <panel name="physics geometry">
+ <text name="first_step_name">
+ 1. Ad覺m: Ayr覺nt覺 Seviyesi
+ </text>
+ <combo_box name="physics_lod_combo" tool_tip="Fizik ekli i癟in kullan覺lacak ayr覺nt覺">
+ <combo_item name="choose_one">
+ Birini se癟in...
+ </combo_item>
+ <combo_item name="physics_high">
+ Y羹ksek
+ </combo_item>
+ <combo_item name="physics_medium">
+ Orta
+ </combo_item>
+ <combo_item name="physics_low">
+ D羹羹k
+ </combo_item>
+ <combo_item name="physics_lowest">
+ En D羹羹k
+ </combo_item>
+ <combo_item name="load_from_file">
+ Dosyadan
+ </combo_item>
+ </combo_box>
+ <button label="G繹zat..." name="physics_browse"/>
+ </panel>
+ <panel name="physics analysis">
+ <text name="method_label">
+ 2. Ad覺m: 繹z羹mle
+ </text>
+ <text name="analysis_method_label">
+ Y繹ntem:
+ </text>
+ <text name="quality_label">
+ Kalite:
+ </text>
+ <text name="smooth_method_label">
+ D羹zeltme:
+ </text>
+ <check_box label="Delikleri Kapat" name="Close Holes (Slow)"/>
+ <button label="繹z羹mle" name="Decompose"/>
+ <button label="襤ptal" name="decompose_cancel"/>
+ </panel>
+ <panel name="physics simplification">
+ <text name="second_step_label">
+ 3. Ad覺m: Basitletir
+ </text>
+ <text name="simp_method_header">
+ Y繹ntem:
+ </text>
+ <text name="pass_method_header">
+ Ge癟iler:
+ </text>
+ <text name="Detail Scale label">
+ Ayr覺nt覺 繹l癟ei:
+ </text>
+ <text name="Retain%_label">
+ Koru:
+ </text>
+ <combo_box name="Combine Quality" value="1"/>
+ <button label="Basitletir" name="Simplify"/>
+ <button label="襤ptal" name="simplify_cancel"/>
+ </panel>
+ <panel name="physics info">
+ <text name="results_text">
+ Sonu癟lar:
+ </text>
+ <text name="physics_triangles">
+ 癟genler: [TRIANGLES],
+ </text>
+ <text name="physics_points">
+ K繹eler: [POINTS],
+ </text>
+ <text name="physics_hulls">
+ G繹vdeler: [HULLS]
+ </text>
+ </panel>
</panel>
- <panel name="physics simplification">
- <slider label="Ge癟iler:" name="Combine Quality"/>
- <slider label="Ayr覺nt覺 l癟ei:" name="Detail Scale"/>
- <slider label="Koru:" name="Retain%"/>
- <button label="Basitletir" name="Simplify"/>
- <button label="襤ptal" name="simplify_cancel"/>
- </panel>
- <panel name="physics info">
- <slider label="nizleme Yay覺l覺m覺:" name="physics_explode"/>
- <text name="physics_triangles">
- 癟genler: [TRIANGLES]
+ <panel label="Kar覺ya y羹kleme se癟enekleri" name="modifiers_panel">
+ <text name="scale_label">
+ l癟ek (1=繹l癟ekleme yok):
+ </text>
+ <spinner name="import_scale" value="1.0"/>
+ <text name="dimensions_label">
+ Boyutlar:
</text>
- <text name="physics_points">
- K繹eler: [POINTS]
+ <text name="import_dimensions">
+ [X] X [Y] X [Z]
</text>
- <text name="physics_hulls">
- G繹vdeler: [HULLS]
+ <check_box label="Dokular覺 dahil et" name="upload_textures"/>
+ <text name="include_label">
+ Sadece avatar modelleri i癟in:
</text>
+ <check_box label="D覺 katman a覺rl覺覺n覺 dahil et" name="upload_skin"/>
+ <check_box label="Eklem konumlar覺n覺 dahil et" name="upload_joints"/>
+ <text name="pelvis_offset_label">
+ Z kaymas覺 (avatar覺 kald覺rmak veya indirmek i癟in):
+ </text>
+ <spinner name="pelvis_offset" value="0.0"/>
</panel>
- </panel>
- <panel label="Deitiriciler" 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="A覺rl覺klar覺 ve 羹creti hesapla" name="calculate_btn" tool_tip="A覺rl覺klar覺 ve 羹creti hesapla"/>
+ <button label="襤ptal" name="cancel_btn"/>
+ <button label="Kar覺ya Y羹kle" name="ok_btn" tool_tip="Sim羹lat繹re kar覺ya y羹kle"/>
+ <button label="Ayarlar覺 temizle ve formu s覺f覺rla" name="reset_btn"/>
+ <text name="upload_fee">
+ Kar覺ya y羹kleme 羹creti: L$ [FEE]
+ </text>
+ <text name="prim_weight">
+ Arazi etkisi [EQ]
+ </text>
+ <text name="download_weight">
+ Kar覺dan Y羹kle: [ST]
+ </text>
+ <text name="physics_weight">
+ Fizik: [PH]
+ </text>
+ <text name="server_weight">
+ Sunucu: [SIM]
+ </text>
+ <text name="warning_title">
+ NOT:
+ </text>
+ <text name="warning_message">
+ rg羹 modellerini kar覺ya y羹klemeye hakk覺n覺z yok. Nas覺l onaylanaca覺n覺z覺 [[VURL] 繹renin].
+ </text>
+ <text name="status">
+ [STATUS]
</text>
- <check_box label="Dokular" name="upload_textures"/>
- <check_box label="D覺 katman a覺rl覺覺" name="upload_skin"/>
- <check_box label="Eklem konumlar覺" name="upload_joints"/>
- <spinner name="pelvis_offset" value="0.0"/>
</panel>
- </tab_container>
- <text name="upload_fee">
- Kar覺ya y羹kleme 羹creti: L$ [FEE]
+ </panel>
+ <text name="lod_label">
+ nizleme:
</text>
- <button label="Varsay覺lanlara ayarla" name="reset_btn" tool_tip="Varsay覺lanlara ayarla"/>
- <button label="A覺rl覺klar覺 ve 羹creti hesapla" name="calculate_btn" tool_tip="A覺rl覺klar覺 ve 羹creti hesapla"/>
- <button label="Kar覺ya Y羹kle" name="ok_btn" tool_tip="Sim羹lat繹re kar覺ya y羹kle"/>
- <button label="襤ptal" name="cancel_btn"/>
+ <panel name="right_panel">
+ <combo_box name="preview_lod_combo" tool_tip="nizleme ilemesinde g繹r羹lecek ayr覺nt覺 seviyesi">
+ <combo_item name="high">
+ Y羹ksek
+ </combo_item>
+ <combo_item name="medium">
+ Orta
+ </combo_item>
+ <combo_item name="low">
+ D羹羹k
+ </combo_item>
+ <combo_item name="lowest">
+ En D羹羹k
+ </combo_item>
+ </combo_box>
+ <text name="label_display">
+ Ekran...
+ </text>
+ <check_box label="Kenarlar" name="show_edges"/>
+ <check_box label="Fizik" name="show_physics"/>
+ <check_box label="Dokular" name="show_textures"/>
+ <check_box label="D覺 katman a覺rl覺klar覺" name="show_skin_weight"/>
+ <check_box label="Eklemler" name="show_joint_positions"/>
+ <text name="physics_explode_label">
+ nizleme Yay覺l覺m覺:
+ </text>
+ </panel>
</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_model_wizard.xml b/indra/newview/skins/default/xui/tr/floater_model_wizard.xml
index a0a67e2def..108d20cfac 100644
--- a/indra/newview/skins/default/xui/tr/floater_model_wizard.xml
+++ b/indra/newview/skins/default/xui/tr/floater_model_wizard.xml
@@ -6,26 +6,20 @@
<button label="2. Optimize et" name="optimize_btn"/>
<button label="1. Dosya Se癟" 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">
Model dosyas覺n覺 se癟in
</text>
</panel>
- <panel name="choose_file_content_panel">
+ <panel name="content">
<text name="advanced_users_text">
Gelimi kullan覺c覺lar: Eer 3B i癟erik oluturma ara癟lar覺n覺 kullanmay覺 biliyorsan覺z, Gelimi Kar覺ya Y羹kleyiciyi kullanmak isteyebilirsiniz.
</text>
<button label="Gelimie ge癟" name="switch_to_advanced"/>
- <text name="choose_model_file_label">
+ <text name="Cache location">
Kar覺ya y羹klenecek model dosyas覺n覺 se癟in
</text>
<button label="G繹zat..." label_selected="G繹zat..." name="browse"/>
- <text name="support_collada_text">
- Second Life, COLLADA (.dae) dosyalar覺n覺 destekler
- </text>
- <text name="dimensions_label">
- Boyutlar (metre):
- </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">
Modeli optimize et
</text>
</panel>
- <text name="optimize_hint">
+ <text name="description">
Modeli performans i癟in optimize ettik. 襤stiyorsan覺z daha da ayarlayabilirsiniz.
</text>
- <panel name="optimize_content_panel">
- <text name="generating_lod_label">
- Ayr覺nt覺 Seviyesi Oluturuluyor
- </text>
+ <panel name="content">
<text name="high_detail_text">
Ayr覺nt覺 Seviyesi Olutur: Y羹ksek
</text>
@@ -64,123 +55,64 @@
</text>
</panel>
<panel name="content2">
- <text name="optimize_performance_text">
- Performans
- </text>
- <text name="optimize_faster_rendering_text">
- Daha h覺zl覺 ileme
-Daha az ayr覺nt覺
-Daha d羹羹k prim a覺rl覺覺
- </text>
- <text name="optimize_accuracy_text">
- Hassasiyet
- </text>
- <text name="optimize_slower_rendering_text">
- Daha yava ileme
-Daha 癟ok ayr覺nt覺
-Daha y羹ksek prim a覺rl覺覺
- </text>
- <text name="accuracy_slider_mark1">
- &apos;
- </text>
- <text name="accuracy_slider_mark2">
- &apos;
- </text>
- <text name="accuracy_slider_mark3">
- &apos;
- </text>
<button label="Geometri hesaplar覺n覺 tekrar yap" name="recalculate_geometry_btn"/>
- <text name="geometry_preview_label">
+ <text name="lod_label">
Geometri 繹nizleme
</text>
<combo_box name="preview_lod_combo" tool_tip="nizleme ilemesinde g繹r羹lecek ayr覺nt覺 seviyesi">
- <combo_item name="preview_lod_high">
+ <combo_item name="high">
ok ayr覺nt覺
</combo_item>
- <combo_item name="preview_lod_medium">
+ <combo_item name="medium">
Orta d羹zey ayr覺nt覺
</combo_item>
- <combo_item name="preview_lod_low">
+ <combo_item name="low">
Az ayr覺nt覺
</combo_item>
- <combo_item name="preview_lod_lowest">
+ <combo_item name="lowest">
En az ayr覺nt覺
</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">
Fizik ayarlar覺n覺 yap
</text>
</panel>
- <text name="physics_hint">
+ <text name="description">
Modelin d覺 g繹vdesi i癟in bir ekil oluturaca覺z. Modelinizin amac覺na uygun olarak eklin ayr覺nt覺 seviyesini belirleyin.
</text>
- <panel name="physics_content_panel">
- <text name="physics_performance_text">
- Performans
- </text>
- <text name="physics_faster_rendering_text">
- Daha h覺zl覺 ileme
-Daha az ayr覺nt覺
-Daha d羹羹k prim a覺rl覺覺
- </text>
- <text name="physics_accuracy_text">
- Hassasiyet
- </text>
- <text name="physics_slower_dendering_text">
- Daha yava ileme
-Daha 癟ok ayr覺nt覺
-Daha y羹ksek prim a覺rl覺覺
- </text>
- <text name="physics_example_1">
- rnekler:
-Hareketli nesneler
-U癟an nesneler
-Ara癟lar
- </text>
- <text name="physics_example_2">
- rnekler:
-K羹癟羹k statik nesneler
-Daha az ayr覺nt覺l覺 nesneler
-Basit eyalar
- </text>
- <text name="physics_example_3">
- rnekler:
-Statik nesneler
-Ayr覺nt覺l覺 nesneler
-Binalar
- </text>
+ <panel name="content">
<button label="Fizik hesaplar覺n覺 tekrar yap" name="recalculate_physics_btn"/>
<button label="Tekrar hesaplan覺yor..." name="recalculating_physics_btn"/>
- <text name="physics_preview_label">
+ <text name="lod_label">
Fizik 繹nizleme
</text>
<combo_box name="preview_lod_combo2" tool_tip="nizleme ilemesinde g繹r羹lecek ayr覺nt覺 seviyesi">
- <combo_item name="preview_lod2_high">
+ <combo_item name="high">
ok ayr覺nt覺
</combo_item>
- <combo_item name="preview_lod2_medium">
+ <combo_item name="medium">
Orta d羹zey ayr覺nt覺
</combo_item>
- <combo_item name="preview_lod2_low">
+ <combo_item name="low">
Az ayr覺nt覺
</combo_item>
- <combo_item name="preview_lod2_lowest">
+ <combo_item name="lowest">
En az ayr覺nt覺
</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">
襤ncele
</text>
</panel>
- <panel name="review_content_panel">
+ <panel name="content">
<text name="review_prim_equiv">
Parsele/b繹lgeye etkisi: [EQUIV] prim edeerleri
</text>
@@ -193,8 +125,8 @@ Binalar
</panel>
</panel>
<panel name="upload_panel">
- <panel name="upload_header_panel">
- <text name="upload_header_text">
+ <panel name="header_panel">
+ <text name="header_text">
Kar覺ya y羹kleme bitti
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/floater_moveview.xml b/indra/newview/skins/default/xui/tr/floater_moveview.xml
index 0d7c118f1e..74ed613a62 100644
--- a/indra/newview/skins/default/xui/tr/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/tr/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="HAREKET ET">
<string name="walk_forward_tooltip">
襤leri Y羹r羹 (Yukar覺 Okuna veya W&apos;ye bas覺n)
</string>
diff --git a/indra/newview/skins/default/xui/tr/floater_my_appearance.xml b/indra/newview/skins/default/xui/tr/floater_my_appearance.xml
new file mode 100644
index 0000000000..4d71187a1f
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_my_appearance.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_appearance" title="GRNM">
+ <panel label="G繹r羹n羹m羹 D羹zenle" name="main_panel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_my_inventory.xml b/indra/newview/skins/default/xui/tr/floater_my_inventory.xml
new file mode 100644
index 0000000000..8c62692a88
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_my_inventory.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_my_inventory" title="ENVANTER"/>
diff --git a/indra/newview/skins/default/xui/tr/floater_object_weights.xml b/indra/newview/skins/default/xui/tr/floater_object_weights.xml
new file mode 100644
index 0000000000..b57943f666
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_object_weights.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="object_weights" title="GEL襤M襤">
+ <floater.string name="nothing_selected" value="--"/>
+ <text name="selected_text" value="SE襤L襤"/>
+ <text name="objects" value="--"/>
+ <text name="objects_label" value="Nesneler"/>
+ <text name="prims" value="--"/>
+ <text name="prims_label" value="Primler"/>
+ <text name="weights_of_selected_text" value="SE襤LENLER襤N AIRLIKLARI"/>
+ <text name="download" value="--"/>
+ <text name="download_label" value="Kar覺dan y羹kle"/>
+ <text name="physics" value="--"/>
+ <text name="physics_label" value="Fizik"/>
+ <text name="server" value="--"/>
+ <text name="server_label" value="Sunucu"/>
+ <text name="display" value="--"/>
+ <text name="display_label" value="Ekran"/>
+ <text name="land_impacts_text" value="ARAZ襤 ETK襤LER襤"/>
+ <text name="selected" value="--"/>
+ <text name="selected_label" value="Se癟ili"/>
+ <text name="rezzed_on_land" value="--"/>
+ <text name="rezzed_on_land_label" value="Arazide oluturulmu"/>
+ <text name="remaining_capacity" value="--"/>
+ <text name="remaining_capacity_label" value="Kalan kapasite"/>
+ <text name="total_capacity" value="--"/>
+ <text name="total_capacity_label" value="Toplam kapasite"/>
+ <text name="help_SLURL" value="[secondlife:///app/help/object_weights Bunlar覺n t羹m羹 ne?...]"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml
index 849fdcdbbc..7a9f507c93 100644
--- a/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml
+++ b/indra/newview/skins/default/xui/tr/floater_outfit_save_as.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="D覺 G繹r羹n羹m羹 Kaydet">
+<floater name="modal container" title="DI GRNM KAYDET">
<button label="Kaydet" label_selected="Kaydet" name="Save"/>
<button label="襤ptal" label_selected="襤ptal" name="Cancel"/>
<text name="Save item as:">
diff --git a/indra/newview/skins/default/xui/tr/floater_people.xml b/indra/newview/skins/default/xui/tr/floater_people.xml
new file mode 100644
index 0000000000..94a27bff57
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_people.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_people" title="K襤襤LER">
+ <panel_container name="main_panel">
+ <panel label="Grup Profili" name="panel_group_info_sidetray"/>
+ <panel label="Engellenmi Sakinler ve Nesneler" name="panel_block_list_sidetray"/>
+ </panel_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_picks.xml b/indra/newview/skins/default/xui/tr/floater_picks.xml
new file mode 100644
index 0000000000..513a2e319a
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_picks.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_picks" title="Se癟meler"/>
diff --git a/indra/newview/skins/default/xui/tr/floater_places.xml b/indra/newview/skins/default/xui/tr/floater_places.xml
new file mode 100644
index 0000000000..4e09a699f6
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_places.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_places" title="YERLER">
+ <panel label="Yerler" name="main_panel"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_preview_texture.xml b/indra/newview/skins/default/xui/tr/floater_preview_texture.xml
index 4548fbae64..79e184130a 100644
--- a/indra/newview/skins/default/xui/tr/floater_preview_texture.xml
+++ b/indra/newview/skins/default/xui/tr/floater_preview_texture.xml
@@ -34,7 +34,7 @@
<combo_item name="16:10">
16:10
</combo_item>
- <combo_item name="16:9" tool_tip="Profil favorileri">
+ <combo_item name="16:9" tool_tip="Profil se癟meleri">
16:9
</combo_item>
<combo_item name="2:1">
diff --git a/indra/newview/skins/default/xui/tr/floater_sound_devices.xml b/indra/newview/skins/default/xui/tr/floater_sound_devices.xml
index 99c3bea954..470a222d7e 100644
--- a/indra/newview/skins/default/xui/tr/floater_sound_devices.xml
+++ b/indra/newview/skins/default/xui/tr/floater_sound_devices.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_sound_devices" title="Ses Ayg覺tlar覺">
+<floater name="floater_sound_devices" title="SES C襤HAZLARI">
<text name="voice_label">
Sesli Sohbet
</text>
diff --git a/indra/newview/skins/default/xui/tr/floater_stats.xml b/indra/newview/skins/default/xui/tr/floater_stats.xml
index 2218060cc7..17f1166c46 100644
--- a/indra/newview/skins/default/xui/tr/floater_stats.xml
+++ b/indra/newview/skins/default/xui/tr/floater_stats.xml
@@ -10,8 +10,8 @@
</stat_view>
<stat_view label="Gelimi" name="advanced">
<stat_view label="襤le" name="render">
- <stat_bar label="izilen 癟genler" name="ktrisframe"/>
- <stat_bar label="izilen 癟genler" name="ktrissec"/>
+ <stat_bar label="er癟eve Ba覺na izilen 癟genler" name="ktrisframe"/>
+ <stat_bar label="Saniyede Bir izilen 癟genler" name="ktrissec"/>
<stat_bar label="Toplam Nesne" name="objs"/>
<stat_bar label="Yeni Nesne" name="newobjs"/>
</stat_view>
@@ -64,6 +64,14 @@
<stat_bar label="Arac覺 S羹resi" name="simagentmsec"/>
<stat_bar label="G繹r羹nt羹 S羹resi" name="simimagesmsec"/>
<stat_bar label="Komut Dosyas覺 S羹resi" name="simscriptmsec"/>
+ <stat_bar label="Yedek Zaman" name="simsparemsec"/>
+ <stat_view label="Zaman Ayr覺nt覺lar覺 (ms)" name="timedetails">
+ <stat_bar label="Fizik Ad覺m覺" name="simsimphysicsstepmsec"/>
+ <stat_bar label="Fizik ekillerini G羹ncelle" name="simsimphysicsshapeupdatemsec"/>
+ <stat_bar label="Fizik Dier" name="simsimphysicsothermsec"/>
+ <stat_bar label="Uyku Zaman覺" name="simsleepmsec"/>
+ <stat_bar label="Pompa Giri 覺k覺" name="simpumpiomsec"/>
+ </stat_view>
</stat_view>
</stat_view>
</container_view>
diff --git a/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml
index 1ba9f8c2aa..4ef789f585 100644
--- a/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml
+++ b/indra/newview/skins/default/xui/tr/floater_texture_ctrl.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="texture picker" title="FAVOR襤: DOKU">
+<floater name="texture picker" title="SEME: DOKU">
<floater.string name="choose_picture">
Bir resim se癟mek i癟in t覺klay覺n
</floater.string>
<floater.string name="pick title">
- Favori:
+ Se癟me:
</floater.string>
<text name="Multiple">
Birden 癟ok doku
diff --git a/indra/newview/skins/default/xui/tr/floater_tools.xml b/indra/newview/skins/default/xui/tr/floater_tools.xml
index 68c18d65e8..cd5e6b7fac 100644
--- a/indra/newview/skins/default/xui/tr/floater_tools.xml
+++ b/indra/newview/skins/default/xui/tr/floater_tools.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="toolbox floater" short_title="襤NA ARALARI">
+<floater name="toolbox floater" short_title="襤NA ET ARALARI">
<floater.string name="status_rotate">
Nesneyi d繹nd羹rmek i癟in renkli bantlar覺 s羹r羹kleyin
</floater.string>
@@ -25,10 +25,10 @@
Araziyi se癟mek i癟in t覺klay覺n ve s羹r羹kleyin
</floater.string>
<floater.string name="status_selectcount">
- [OBJ_COUNT] nesne ( [PRIM_COUNT] prim [PE_STRING] ) se癟ili
+ [OBJ_COUNT] nesne se癟ili, [LAND_IMPACT] arazi etkisi
</floater.string>
- <floater.string name="status_selectprimequiv">
- , [SEL_WEIGHT] prim edeerleri
+ <floater.string name="status_remaining_capacity">
+ Kalan kapasite [LAND_CAPACITY].
</floater.string>
<button name="button focus" tool_tip="Odak"/>
<button name="button move" tool_tip="Hareket Et"/>
@@ -107,8 +107,8 @@
<text name="selection_empty">
Se癟ilen bir ey yok.
</text>
- <text name="selection_weight">
- Fizik a覺rl覺覺 [PHYS_WEIGHT], 襤leme Maliyeti [DISP_WEIGHT].
+ <text name="remaining_capacity">
+ [CAPACITY_STRING] [secondlife:///app/openfloater/object_weights Ek bilgi]
</text>
<tab_container name="Object Info Tabs">
<panel label="Genel" name="General">
@@ -321,7 +321,6 @@
Diki t羹r羹
</text>
<combo_box name="sculpt type control">
- <combo_box.item label="(hi癟biri)" name="None"/>
<combo_box.item label="K羹re" name="Sphere"/>
<combo_box.item label="Torus" name="Torus"/>
<combo_box.item label="D羹zlem" name="Plane"/>
diff --git a/indra/newview/skins/default/xui/tr/floater_toybox.xml b/indra/newview/skins/default/xui/tr/floater_toybox.xml
new file mode 100644
index 0000000000..05d3633df0
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/floater_toybox.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Toybox" title="ARA UBUKLARINI ZELLET襤R">
+ <text name="toybox label 1">
+ D羹meleri ara癟 癟ubuklar覺na veya ara癟 癟ubuklar覺ndan s羹r羹kleyerek ekleyin ya da kald覺r覺n.
+ </text>
+ <text name="toybox label 2">
+ Her bir ara癟 癟ubuunun ayar覺na g繹re d羹meler g繹sterilir veya sadece simgeleri yer al覺r.
+ </text>
+ <button label="Varsay覺lanlar覺 geri y羹kle" label_selected="Varsay覺lanlar覺 geri y羹kle" name="btn_restore_defaults"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/tr/floater_voice_controls.xml b/indra/newview/skins/default/xui/tr/floater_voice_controls.xml
index d5d6606e4e..dac05d8327 100644
--- a/indra/newview/skins/default/xui/tr/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/tr/floater_voice_controls.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_voice_controls" title="Ses Denetimleri">
+<floater name="floater_voice_controls" title="SES DENET襤MLER襤">
<string name="title_nearby">
- YAKINDAK襤 SES
+ Yak覺ndaki ses
</string>
<string name="title_group">
- [GROUP] ile Grup Aramas覺
+ [GROUP] ile grup aramas覺
</string>
<string name="title_adhoc">
- Konferans Aramas覺
+ Konferans aramas覺
</string>
<string name="title_peer_2_peer">
[NAME] ile arama
diff --git a/indra/newview/skins/default/xui/tr/floater_windlight_options.xml b/indra/newview/skins/default/xui/tr/floater_windlight_options.xml
index 02910e2539..6c5fba374c 100644
--- a/indra/newview/skins/default/xui/tr/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/tr/floater_windlight_options.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="WindLight floater" title="GEL襤M襤 GKYZ DZENLEY襤C襤">
<floater.string name="WLDefaultSkyNames">
- A-12:A-12S:A-3:A-3S:A-4.30S:A-6:A-6S:A-9:A-9S:Barselona:Tipi:Mavi G羹n Ortas覺:Sahilde leden Sonra:Sahilde G羹n Bat覺m覺:Varsay覺lan:繹lde G羹n Bat覺m覺:G羹zel Bir G羹n:Kabar覺k B羹y羹k Bulutlar:Sisli:覺k 覺k:覺k 覺k 覺k:Dondurma:Hayalet:Uygunsuz Ger癟ekler:G羹n Ortas覺1:G羹n Ortas覺 2:G羹n Ortas覺 3:G羹n Ortas覺 4:Gece:Korsan:Mor:Denizcinin Keyfi:Saf Tensel
+ A-12:A-24:A-3:A-15:A-16.30:A-6:A-18:A-9:A-21:Barselona:Tipi:Mavi G羹n Ortas覺:Sahilde leden Sonra:Sahilde G羹n Bat覺m覺:Varsay覺lan:繹lde G羹n Bat覺m覺:G羹zel Bir G羹n:Kabar覺k B羹y羹k Bulutlar:Sisli:覺k 覺k:覺k 覺k 覺k:Dondurma:Hayalet:Uygunsuz Ger癟ekler:G羹n Ortas覺1:G羹n Ortas覺 2:G羹n Ortas覺 3:G羹n Ortas覺 4:Gece:Korsan:Mor:Denizcinin Keyfi:Saf Tensel
</floater.string>
<text name="KeyFramePresetsText">
G繹ky羹z羹 n Ayarlar覺:
diff --git a/indra/newview/skins/default/xui/tr/menu_bottomtray.xml b/indra/newview/skins/default/xui/tr/menu_bottomtray.xml
index c437669704..f17c0f9971 100644
--- a/indra/newview/skins/default/xui/tr/menu_bottomtray.xml
+++ b/indra/newview/skins/default/xui/tr/menu_bottomtray.xml
@@ -8,7 +8,7 @@
<menu_item_check label="襤na Et d羹mesi" name="ShowBuildButton"/>
<menu_item_check label="Arama d羹mesi" name="ShowSearchButton"/>
<menu_item_check label="Harita d羹mesi" name="ShowWorldMapButton"/>
- <menu_item_check label="Mini-Harita d羹mesi" name="ShowMiniMapButton"/>
+ <menu_item_check label="Mini-harita d羹mesi" name="ShowMiniMapButton"/>
<menu_item_call label="Kes" name="NearbyChatBar_Cut"/>
<menu_item_call label="Kopyala" name="NearbyChatBar_Copy"/>
<menu_item_call label="Yap覺t覺r" name="NearbyChatBar_Paste"/>
diff --git a/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml b/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml
index 9ae433d8bb..cb9b678fdd 100644
--- a/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/tr/menu_gesture_gear.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="menu_gesture_gear">
- <menu_item_call label="S覺k Kullan覺lanlara Ekle/覺kar" name="activate"/>
+ <menu_item_call label="Favorilere Ekle/覺kar" name="activate"/>
<menu_item_call label="Kopyala" name="copy_gesture"/>
<menu_item_call label="Yap覺t覺r" name="paste"/>
<menu_item_call label="UUID&apos;yi Kopyala" name="copy_uuid"/>
diff --git a/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml b/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml
index d9b99e040b..d1f213516b 100644
--- a/indra/newview/skins/default/xui/tr/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/tr/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="Gezinme ubuunu G繹ster" name="ShowNavbarNavigationPanel"/>
- <menu_item_check label="S覺k Kullan覺lanlar ubuunu G繹ster" name="ShowNavbarFavoritesPanel"/>
+ <menu_item_check label="Gezinme ve Favoriler ubuunu G繹ster" name="ShowNavbarNavigationPanel"/>
+ <menu_item_check label="Favoriler ubuunu G繹ster" name="ShowNavbarFavoritesPanel"/>
<menu_item_check label="Mini Konum ubuunu G繹ster" name="ShowMiniLocationPanel"/>
</menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_landmark.xml b/indra/newview/skins/default/xui/tr/menu_landmark.xml
index 17068d445d..c68a2f6a90 100644
--- a/indra/newview/skins/default/xui/tr/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/tr/menu_landmark.xml
@@ -2,6 +2,6 @@
<toggleable_menu name="landmark_overflow_menu">
<menu_item_call label="SLurl&apos;i Kopyala" name="copy"/>
<menu_item_call label="Sil" name="delete"/>
- <menu_item_call label="Favori Olutur" name="pick"/>
- <menu_item_call label="S覺k Kullan覺lanlar ubuuna Ekle" name="add_to_favbar"/>
+ <menu_item_call label="Se癟me Olutur" name="pick"/>
+ <menu_item_call label="Favoriler ubuuna Ekle" name="add_to_favbar"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_login.xml b/indra/newview/skins/default/xui/tr/menu_login.xml
index a726925bd3..4c3539b38b 100644
--- a/indra/newview/skins/default/xui/tr/menu_login.xml
+++ b/indra/newview/skins/default/xui/tr/menu_login.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu_bar name="Login Menu">
<menu label="Ben" name="File">
- <menu_item_call label="Tercihler" name="Preferences..."/>
+ <menu_item_call label="Tercihler..." name="Preferences..."/>
<menu_item_call label="[APP_NAME]&apos;den 覺k" name="Quit"/>
</menu>
<menu label="Yard覺m" name="Help">
diff --git a/indra/newview/skins/default/xui/tr/menu_picks_plus.xml b/indra/newview/skins/default/xui/tr/menu_picks_plus.xml
index 0bd84fa88e..d9c4fefc97 100644
--- a/indra/newview/skins/default/xui/tr/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/tr/menu_picks_plus.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="picks_plus_menu">
- <menu_item_call label="Yeni Favori" name="create_pick"/>
+ <menu_item_call label="Yeni Se癟me" name="create_pick"/>
<menu_item_call label="Yeni 襤lan" name="create_classified"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_place.xml b/indra/newview/skins/default/xui/tr/menu_place.xml
index 4ef7c01f09..ad167a328a 100644
--- a/indra/newview/skins/default/xui/tr/menu_place.xml
+++ b/indra/newview/skins/default/xui/tr/menu_place.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="place_overflow_menu">
<menu_item_call label="Yer 襤mi Yap" name="landmark"/>
- <menu_item_call label="Favori Olutur" name="pick"/>
+ <menu_item_call label="Se癟me Olutur" name="pick"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml
index 5282d9fec7..939ee2c7cb 100644
--- a/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/tr/menu_places_gear_landmark.xml
@@ -15,5 +15,5 @@
<menu_item_call label="T羹m klas繹rleri genilet" name="expand_all"/>
<menu_item_call label="T羹m klas繹rleri daralt" name="collapse_all"/>
<menu_item_check label="Tarihe G繹re S覺rala" name="sort_by_date"/>
- <menu_item_call label="Favori Olutur" name="create_pick"/>
+ <menu_item_call label="Se癟me Olutur" name="create_pick"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_slurl.xml b/indra/newview/skins/default/xui/tr/menu_slurl.xml
index 03e3837ea0..73ac068b26 100644
--- a/indra/newview/skins/default/xui/tr/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/tr/menu_slurl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
<menu_item_call label="URL Hakk覺nda" name="about_url"/>
- <menu_item_call label="URL&apos;ye I覺nlan" name="teleport_to_url"/>
+ <menu_item_call label="URL&apos;ye I覺nla" name="teleport_to_url"/>
<menu_item_call label="Harita" name="show_on_map"/>
</menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_toolbars.xml b/indra/newview/skins/default/xui/tr/menu_toolbars.xml
new file mode 100644
index 0000000000..7cb3192ec4
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/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="D羹meleri se癟..." name="Chose Buttons"/>
+ <menu_item_check label="Simgeler ve etiketler" name="icons_with_text"/>
+ <menu_item_check label="Sadece simgeler" name="icons_only"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/tr/menu_viewer.xml b/indra/newview/skins/default/xui/tr/menu_viewer.xml
index fa09e42a14..efeed833a5 100644
--- a/indra/newview/skins/default/xui/tr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/tr/menu_viewer.xml
@@ -1,27 +1,28 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu_bar name="Main Menu">
<menu label="Ben" name="Me">
- <menu_item_call label="Tercihler" name="Preferences"/>
- <menu_item_call label="Kontrol Panelim" name="Manage My Account"/>
- <menu_item_call label="L$ Sat覺n Al" name="Buy and Sell L$"/>
- <menu_item_call label="Profilim" name="Profile"/>
- <menu_item_call label="G繹r羹n羹m羹m" name="ChangeOutfit"/>
- <menu_item_check label="Envanterim" name="Inventory"/>
- <menu_item_check label="Envanterim" name="ShowSidetrayInventory"/>
- <menu_item_check label="Mimiklerim" name="Gestures"/>
- <menu_item_check label="Sesim" name="ShowVoice"/>
+ <menu_item_call label="Kontrol Paneli..." name="Manage My Account"/>
+ <menu_item_call label="Profil..." name="Profile"/>
+ <menu_item_call label="G繹r羹n羹m..." name="ChangeOutfit"/>
+ <menu_item_check label="Envanter..." name="Inventory"/>
+ <menu_item_check label="Mimikler..." name="Gestures"/>
+ <menu_item_check label="Ses..." name="ShowVoice"/>
<menu label="Hareket" name="Movement">
<menu_item_call label="Otur" name="Sit Down Here"/>
<menu_item_check label="U癟" name="Fly"/>
<menu_item_check label="Daima Ko" name="Always Run"/>
<menu_item_call label="Beni Anime Etmeyi Durdur" name="Stop Animating My Avatar"/>
</menu>
- <menu label="Durumum" name="Status">
+ <menu label="Durum" name="Status">
<menu_item_call label="Uzakta" name="Set Away"/>
<menu_item_call label="Megul" name="Set Busy"/>
</menu>
<menu_item_call label="Y繹netici Durumu Talep Et" name="Request Admin Options"/>
<menu_item_call label="Y繹netici Durumundan Ayr覺l" name="Leave Admin Options"/>
+ <menu_item_call label="L$ Sat覺n Al" name="Buy and Sell L$"/>
+ <menu_item_call label="Tercihler..." name="Preferences"/>
+ <menu_item_call label="Ara癟 癟ubuklar覺..." name="Toolbars"/>
+ <menu_item_call label="T羹m denetimleri sakla" name="Hide UI"/>
<menu_item_call label="[APP_NAME]&apos;den 覺k" name="Quit"/>
</menu>
<menu label="襤letiim Kur" name="Communicate">
@@ -32,7 +33,7 @@
<menu_item_check label="Yak覺ndaki Ses" name="Nearby Voice"/>
</menu>
<menu label="D羹nya" name="World">
- <menu_item_check label="Mini-Harita" name="Mini-Map"/>
+ <menu_item_check label="Mini-harita" name="Mini-Map"/>
<menu_item_check label="D羹nya Haritas覺" name="World Map"/>
<menu_item_check label="Ara" name="Search"/>
<menu_item_call label="Anl覺k G繹r羹nt羹" name="Take Snapshot"/>
@@ -55,7 +56,7 @@
<menu_item_check label="Parsel zellikleri" name="Parcel Properties"/>
<menu_item_check label="Gelimi Men羹" name="Show Advanced Menu"/>
</menu>
- <menu_item_call label="Ana Konuma I覺nlan" name="Teleport Home"/>
+ <menu_item_call label="Ana Konuma I覺nla" name="Teleport Home"/>
<menu_item_call label="Ana Konumu Buras覺 Olarak Se癟" name="Set Home to Here"/>
<menu label="G羹ne" name="Environment Settings">
<menu_item_call label="G羹n Doumu" name="Sunrise"/>
@@ -144,7 +145,6 @@
</menu>
<menu label="Yard覺m" name="Help">
<menu_item_call label="[SECOND_LIFE] Yard覺m覺" name="Second Life Help"/>
- <menu_item_check label="襤pu癟lar覺n覺 Etkinletir" name="Enable Hints"/>
<menu_item_call label="K繹t羹ye Kullan覺m覺 Bildir" name="Report Abuse"/>
<menu_item_call label="Hata Bildir" name="Report Bug"/>
<menu_item_call label="[APP_NAME] Hakk覺nda" name="About Second Life"/>
@@ -160,7 +160,7 @@
<menu label="Performans Ara癟lar覺" name="Performance Tools">
<menu_item_call label="Gecikme l癟er" name="Lag Meter"/>
<menu_item_check label="襤statistik ubuu" name="Statistics Bar"/>
- <menu_item_check label="Avatar 襤lemi Maaliyetini G繹ster" name="Avatar Rendering Cost"/>
+ <menu_item_check label="Avatarlar 襤癟in izim A覺rl覺覺n覺 G繹ster" name="Avatar Rendering Cost"/>
</menu>
<menu label="Vurgulama ve G繹r羹n羹rl羹k" name="Highlighting and Visibility">
<menu_item_check label="Yan覺p S繹nen 襤aret" name="Cheesy Beacon"/>
@@ -288,6 +288,7 @@
<menu_item_check label="I覺klar" name="Lights"/>
<menu_item_check label="arp覺ma 襤skeleti" name="Collision Skeleton"/>
<menu_item_check label="I覺n Yay覺n覺" name="Raycast"/>
+ <menu_item_check label="襤leme Karma覺kl覺覺" name="rendercomplexity"/>
<menu_item_check label="ekillendir" name="Sculpt"/>
</menu>
<menu label="襤leme" name="Rendering">
diff --git a/indra/newview/skins/default/xui/tr/notifications.xml b/indra/newview/skins/default/xui/tr/notifications.xml
index 5eff0cf570..a268c103a6 100644
--- a/indra/newview/skins/default/xui/tr/notifications.xml
+++ b/indra/newview/skins/default/xui/tr/notifications.xml
@@ -189,7 +189,7 @@ Bu Yetenek &apos;[ROLE_NAME]&apos; rol羹ne eklensin mi?
<usetemplate ignoretext="Aksesuarlar覺 癟覺karmadan 繹nce dorulama iste" name="okcancelignore" notext="Hay覺r" yestext="Evet"/>
</notification>
<notification name="JoinGroupCanAfford">
- Bu gruba kat覺lman覺n maliyeti: [COST] L$.
+ Bu gruba kat覺lman覺n maliyeti: L$ [COST].
Devam etmek istiyor musunuz?
<usetemplate name="okcancelbuttons" notext="襤ptal Et" yestext="Kat覺l"/>
</notification>
@@ -199,33 +199,33 @@ Devam etmek istiyor musunuz?
<usetemplate name="okcancelbuttons" notext="襤ptal Et" yestext="Kat覺l"/>
</notification>
<notification name="JoinGroupCannotAfford">
- Bu gruba kat覺lman覺n maliyeti: [COST] L$.
+ Bu gruba kat覺lman覺n maliyeti: L$ [COST].
Bu gruba kat覺lmak i癟in yeterli L$&apos;na sahip deilsiniz.
</notification>
<notification name="CreateGroupCost">
- Bu grubu oluturman覺n maliyeti: 100 L$.
+ Bu grubu oluturman覺n maliyeti: L$ 100.
Gruplar覺n birden fazla 羹yeye sahip olmas覺 gereklidir, aksi takdirde grup kal覺c覺 olarak silinir.
L羹tfen 48 saat i癟inde dier 羹yeleri davet edin.
- <usetemplate canceltext="襤ptal" name="okcancelbuttons" notext="襤ptal" yestext="100 L$ 繹deyerek grubu olutur"/>
+ <usetemplate canceltext="襤ptal" name="okcancelbuttons" notext="襤ptal" yestext="L$ 100 繹deyerek grubu olutur"/>
</notification>
<notification name="LandBuyPass">
- [COST] L$ 繹deyerek (&apos;[PARCEL_NAME]&apos;) arazisine [TIME] saat s羹reyle girebilirsiniz. Giri hakk覺 sat覺n almak istiyor musunuz?
+ L$ [COST] 繹deyerek (&apos;[PARCEL_NAME]&apos;) arazisine [TIME] saat s羹reyle girebilirsiniz. Giri hakk覺 sat覺n almak istiyor musunuz?
<usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
</notification>
<notification name="SalePriceRestriction">
- Herhangi birine sat覺 yaparken sat覺 fiyat覺 0 L$&apos;ndan daha y羹ksek bir deere ayarlanmal覺d覺r.
-0 L$ fiyatla sat覺 yap覺yorsan覺z l羹tfen sat覺覺n yap覺laca覺 kiiyi se癟in.
+ Herhangi birine sat覺 yaparken sat覺 fiyat覺 L$ 0&apos;dan daha y羹ksek bir deere ayarlanmal覺d覺r.
+L$ 0 fiyatla sat覺 yap覺yorsan覺z l羹tfen sat覺覺n yap覺laca覺 kiiyi se癟in.
</notification>
<notification name="ConfirmLandSaleChange">
Se癟ili [LAND_SIZE] m簡 arazi sat覺a 癟覺kar覺lmak 羹zere ayarlan覺yor.
-Sat覺 fiyat覺n覺z [SALE_PRICE] L$ olacak ve [NAME] i癟in sat覺a a癟覺k olacakt覺r.
+Sat覺 fiyat覺n覺z L$ [SALE_PRICE] olacak ve [NAME] i癟in sat覺a a癟覺k olacakt覺r.
<usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
</notification>
<notification name="ConfirmLandSaleToAnyoneChange">
D襤KKAT: &apos;Herkes i癟in sat覺a a癟覺k&apos; se癟eneinin t覺klanmas覺, arazinizi t羹m [SECOND_LIFE] topluluuna a癟覺k hale getirir, bu b繹lgede bulunmayanlar da buna dahildir.
Se癟ili [LAND_SIZE] m簡 arazi sat覺a 癟覺kar覺lmak 羹zere ayarlan覺yor.
-Sat覺 fiyat覺n覺z [SALE_PRICE] L$ olacak ve [NAME] i癟in sat覺a a癟覺k olacakt覺r.
+Sat覺 fiyat覺n覺z L$ [SALE_PRICE] olacak ve [NAME] i癟in sat覺a a癟覺k olacakt覺r.
<usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
</notification>
<notification name="ReturnObjectsDeededToGroup">
@@ -365,7 +365,7 @@ Devam etmek istediinize emin misiniz?
<usetemplate name="okbutton" yestext="Tamam"/>
</notification>
<notification name="DeleteAvatarPick">
- Favori &lt;nolink&gt;[PICK]&lt;/nolink&gt; silinsin mi?
+ Se癟me &lt;nolink&gt;[PICK]&lt;/nolink&gt; silinsin mi?
<usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
</notification>
<notification name="DeleteOutfits">
@@ -1008,7 +1008,7 @@ bu simdeki TM ARAZ襤LERDEN S襤LMEK istediinize emin misiniz?
襤lan覺n覺z i癟in bir ad belirtmelisiniz.
</notification>
<notification name="MinClassifiedPrice">
- Listeleme i癟in 繹denmesi gereken tutar en az [MIN_PRICE] L$ olmal覺d覺r.
+ Listeleme i癟in 繹denmesi gereken tutar en az L$ [MIN_PRICE] olmal覺d覺r.
L羹tfen daha y羹ksek bir tutar girin.
</notification>
@@ -1586,7 +1586,7 @@ L羹tfen daha sonra tekrar deneyin.
</notification>
<notification name="TeleportToPick">
[PICK] konumuna 覺覺nlan覺ls覺n m覺?
- <usetemplate ignoretext="Favori sekmesindeki bir konuma 覺覺nlanma istediimde dorulama iste" name="okcancelignore" notext="襤ptal Et" yestext="I覺nla"/>
+ <usetemplate ignoretext="Se癟me sekmesindeki bir konuma 覺覺nlanma istediimde dorulama iste" name="okcancelignore" notext="襤ptal Et" yestext="I覺nla"/>
</notification>
<notification name="TeleportToClassified">
[CLASSIFIED] konumuna 覺覺nlan覺ls覺n m覺?
@@ -1766,7 +1766,7 @@ Erikinlik Seviyesi tercihinizi imdi y羹kseltmek ve araziye girebilmek i癟in
<notification name="PublishClassified">
Hat覺rla: 襤lan 羹cretleri iade edilmez.
-imdi [AMOUNT] L$ 繹deyerek bu ilan覺 yay覺nlamak istiyor musunuz?
+imdi L$ [AMOUNT] 繹deyerek bu ilan覺 yay覺nlamak istiyor musunuz?
<usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
</notification>
<notification name="SetClassifiedMature">
@@ -1810,7 +1810,7 @@ L羹tfen sadece bir nesne se癟in ve tekrar deneyin.
L羹tfen sadece bir nesne se癟in ve tekrar deneyin.
</notification>
<notification name="BuyOriginal">
- zg羹n nesne [OWNER] kullan覺c覺s覺ndan [PRICE] L$ kar覺l覺覺nda sat覺n al覺ns覺n m覺?
+ zg羹n nesne [OWNER] kullan覺c覺s覺ndan L$ [PRICE] kar覺l覺覺nda sat覺n al覺ns覺n m覺?
Nesnenin sahibi siz olacaks覺n覺z.
u ilemleri yapabileceksiniz:
Deitirme: [MODIFYPERM]
@@ -1819,7 +1819,7 @@ Nesnenin sahibi siz olacaks覺n覺z.
<usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
</notification>
<notification name="BuyOriginalNoOwner">
- zg羹n nesne PRICE] L$ kar覺l覺覺nda sat覺n al覺ns覺n m覺?
+ zg羹n nesne L$ [PRICE] kar覺l覺覺nda sat覺n al覺ns覺n m覺?
Nesnenin sahibi siz olacaks覺n覺z.
u ilemleri yapabileceksiniz:
Deitirme: [MODIFYPERM]
@@ -1828,7 +1828,7 @@ Nesnenin sahibi siz olacaks覺n覺z.
<usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
</notification>
<notification name="BuyCopy">
- Bir kopyas覺 [OWNER] kullan覺c覺s覺ndan [PRICE] L$ kar覺l覺覺nda sat覺n al覺ns覺n m覺?
+ Bir kopyas覺 [OWNER] kullan覺c覺s覺ndan L$ [PRICE] kar覺l覺覺nda sat覺n al覺ns覺n m覺?
Nesne envanterinize kopyalanacak.
u ilemleri yapabileceksiniz:
Deitirme: [MODIFYPERM]
@@ -1837,7 +1837,7 @@ Nesne envanterinize kopyalanacak.
<usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
</notification>
<notification name="BuyCopyNoOwner">
- Bir kopyas覺 [PRICE] L$ kar覺l覺覺nda sat覺n al覺ns覺n m覺?
+ Bir kopyas覺 L$ [PRICE] kar覺l覺覺nda sat覺n al覺ns覺n m覺?
Nesne envanterinize kopyalanacak.
u ilemleri yapabileceksiniz:
Deitirme: [MODIFYPERM]
@@ -1846,12 +1846,12 @@ Nesne envanterinize kopyalanacak.
<usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
</notification>
<notification name="BuyContents">
- 襤癟erik [OWNER] kullan覺c覺s覺ndan [PRICE] L$ kar覺l覺覺nda sat覺n al覺ns覺n m覺?
+ 襤癟erik [OWNER] kullan覺c覺s覺ndan L$ [PRICE] kar覺l覺覺nda sat覺n al覺ns覺n m覺?
襤癟erik envanterinize kopyalanacak.
<usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
</notification>
<notification name="BuyContentsNoOwner">
- 襤癟erik [PRICE] L$ kar覺l覺覺nda sat覺n al覺ns覺n m覺?
+ 襤癟erik L$ [PRICE] kar覺l覺覺nda sat覺n al覺ns覺n m覺?
襤癟erik envanterinize kopyalanacak.
<usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
</notification>
@@ -1875,7 +1875,7 @@ L羹tfen parolan覺z覺 yeniden girin ve Tamam&apos;覺 t覺klat覺n.
</notification>
<notification name="SetPickLocation">
Not:
-Bu favorinin konumunu g羹ncellediniz fakat dier detaylar 繹zg羹n deerlerini koruyacak.
+Bu se癟menin konumunu g羹ncellediniz fakat dier detaylar 繹zg羹n deerlerini koruyacak.
<usetemplate name="okbutton" yestext="Tamam"/>
</notification>
<notification name="MoveInventoryFromObject">
@@ -1909,6 +1909,12 @@ Envanter 繹esi/繹eleri ta覺ns覺n m覺?
覺kmak istediinize emin misiniz?
<usetemplate ignoretext="覺kmadan 繹nce dorulama iste" name="okcancelignore" notext="覺kma" yestext="覺k"/>
</notification>
+ <notification name="ConfirmRestoreToybox">
+ Varsay覺lan d羹melerinizi ve ara癟 癟ubuklar覺n覺z覺 geri y羹klemek istediinize emin misiniz?
+
+Bu eylemi geri alamazs覺n覺z.
+ <usetemplate name="okcancelbuttons" notext="襤ptal" yestext="Tamam"/>
+ </notification>
<notification name="DeleteItems">
[QUESTION]
<usetemplate ignoretext="eleri silmeden 繹nce dorulama iste" name="okcancelignore" notext="襤ptal" yestext="Tamam"/>
@@ -2126,7 +2132,7 @@ Bu ad覺mda web taray覺c覺n覺z覺n balat覺laca覺na dikkat edin.
(Yakla覺k 5 dakika s羹recektir.)
</notification>
<notification name="UploadPayment">
- Kar覺ya y羹klemek i癟in [AMOUNT] L$ 繹dediniz.
+ Kar覺ya y羹klemek i癟in L$ [AMOUNT] 繹dediniz.
</notification>
<notification name="UploadWebSnapshotDone">
Web sitesinde yer alan anl覺k g繹r羹nt羹lerin kar覺ya y羹klenmesi tamamland覺.
@@ -2473,7 +2479,7 @@ L羹tfen biraz sonra tekrar deneyin.
[MESSAGE] - [MATURITY_STR] &lt;icon&gt;[MATURITY_ICON]&lt;/icon&gt;
<form name="form">
- <button name="Teleport" text="I覺nlan"/>
+ <button name="Teleport" text="I覺nla"/>
<button name="Cancel" text="襤ptal"/>
</form>
</notification>
@@ -2995,10 +3001,6 @@ G繹r羹n羹m羹n羹z羹 d繹nd羹rmek i癟in d羹nya 羹zerindeki herhangi bir yeri t覺kla
<button name="cancel" text="襤ptal Et"/>
</form>
</notification>
- <notification label="" name="ModeChange">
- Mod deitirme, uygulamadan 癟覺k覺p yeniden balatman覺z覺 gerektiriyor.
- <usetemplate name="okcancelbuttons" notext="覺kma" yestext="覺k"/>
- </notification>
<notification label="" name="NoClassifieds">
襤lan oluturma ve d羹zenleme sadece Gelimi modda kullan覺labilir. Uygulamadan 癟覺k覺p, mod deitirmek ister misiniz? Mod se癟ici oturum a癟ma ekran覺nda bulunabilir.
<usetemplate name="okcancelbuttons" notext="覺kma" yestext="覺k"/>
@@ -3012,7 +3014,7 @@ G繹r羹n羹m羹n羹z羹 d繹nd羹rmek i癟in d羹nya 羹zerindeki herhangi bir yeri t覺kla
<usetemplate name="okcancelbuttons" notext="覺kma" yestext="覺k"/>
</notification>
<notification label="" name="NoPicks">
- Favorileri oluturma ve d羹zenleme sadece Gelimi modda kullan覺labilir. Uygulamadan 癟覺k覺p, mod deitirmek ister misiniz? Mod se癟ici oturum a癟ma ekran覺nda bulunabilir.
+ Se癟meleri oluturma ve d羹zenleme sadece Gelimi modda kullan覺labilir. Uygulamadan 癟覺k覺p, mod deitirmek ister misiniz? Mod se癟ici oturum a癟ma ekran覺nda bulunabilir.
<usetemplate name="okcancelbuttons" notext="覺kma" yestext="覺k"/>
</notification>
<notification label="" name="NoWorldMap">
@@ -3043,6 +3045,10 @@ G繹r羹n羹m羹n羹z羹 d繹nd羹rmek i癟in d羹nya 羹zerindeki herhangi bir yeri t覺kla
Arama sadece Gelimi modda kullan覺labilir. Oturumunuzu kapat覺p, mod deitirmek ister misiniz?
<usetemplate name="okcancelbuttons" notext="覺kma" yestext="覺k"/>
</notification>
+ <notification label="" name="ConfirmHideUI">
+ Bu eylem t羹m men羹 繹elerini ve d羹melerini gizler. Bunlar覺 geri almak i癟in [SHORTCUT] 羹zerine tekrar t覺klay覺n.
+ <usetemplate ignoretext="KA&apos;ni gizlemeden 繹nce onayla" name="okcancelignore" notext="襤ptal" yestext="Tamam"/>
+ </notification>
<global name="UnsupportedGLRequirements">
[APP_NAME] uygulamas覺 i癟in gerekli donan覺m gereksinimlerine sahip olmad覺覺n覺z g繹r羹n羹yor. [APP_NAME] 癟oklu doku destei sunan bir OpenGL grafik kart覺 gerektiriyor. Eer grafik kart覺n覺z bu 繹zellikteyse, grafik kart覺n覺z覺n en son s羹r羹c羹lerine ve iletim sisteminiz i癟in gerekli Service Pack ve yamalara sahip olup olmad覺覺n覺z覺 kontrol etmeyi deneyebilirsiniz.
diff --git a/indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/tr/panel_chiclet_bar.xml
new file mode 100644
index 0000000000..a1e8190bbc
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/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="Sohbetler"/>
+ </chiclet_im_well>
+ </layout_panel>
+ <layout_panel name="notification_well_panel">
+ <chiclet_notification name="notification_well">
+ <button name="Unread" tool_tip="Bildirimler"/>
+ </chiclet_notification>
+ </layout_panel>
+ </layout_stack>
+</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_edit_pick.xml b/indra/newview/skins/default/xui/tr/panel_edit_pick.xml
index 446beb6eb8..98b02d27df 100644
--- a/indra/newview/skins/default/xui/tr/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/tr/panel_edit_pick.xml
@@ -4,7 +4,7 @@
(kaydedildikten sonra g羹ncelletirilir)
</panel.string>
<text name="title">
- Favori D羹zenle
+ Se癟me D羹zenle
</text>
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
@@ -27,7 +27,7 @@
<panel label="bottom_panel" name="bottom_panel">
<layout_stack name="layout_stack1">
<layout_panel name="layout_panel1">
- <button label="Favori Kaydet" name="save_changes_btn"/>
+ <button label="Se癟me Kaydet" name="save_changes_btn"/>
</layout_panel>
<layout_panel name="layout_panel2">
<button label="襤ptal" name="cancel_btn"/>
diff --git a/indra/newview/skins/default/xui/tr/panel_landmarks.xml b/indra/newview/skins/default/xui/tr/panel_landmarks.xml
index 7543decb36..d40d0c1543 100644
--- a/indra/newview/skins/default/xui/tr/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/tr/panel_landmarks.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Landmarks">
<accordion name="landmarks_accordion">
- <accordion_tab name="tab_favorites" title="S覺k Kullan覺lanlar 癟ubuu"/>
+ <accordion_tab name="tab_favorites" title="Favoriler 癟ubuu"/>
<accordion_tab name="tab_landmarks" title="Yer 襤mlerim"/>
<accordion_tab name="tab_inventory" title="Envanterim"/>
<accordion_tab name="tab_library" title="K羹t羹phane"/>
diff --git a/indra/newview/skins/default/xui/tr/panel_me.xml b/indra/newview/skins/default/xui/tr/panel_me.xml
index dcf4f19be2..4b911c9ce6 100644
--- a/indra/newview/skins/default/xui/tr/panel_me.xml
+++ b/indra/newview/skins/default/xui/tr/panel_me.xml
@@ -1,7 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Profilim" name="panel_me">
- <tab_container name="tabs">
- <panel label="PROF襤L襤M" name="panel_profile"/>
- <panel label="FAVOR襤LER襤M" name="panel_picks"/>
- </tab_container>
+ <panel label="SEMELER襤M" name="panel_picks"/>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml b/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml
index b28036228f..8d43e3fb5a 100644
--- a/indra/newview/skins/default/xui/tr/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/tr/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="nceki konuma geri git"/>
- <pull_button name="forward_btn" tool_tip="Bir konum ileri git"/>
- <button name="home_btn" tool_tip="Ana konumuma 覺覺nla"/>
- <location_input label="Konum" name="location_combo"/>
- <search_combo_box label="Ara" name="search_combo_box" tool_tip="Ara">
- <combo_editor label="[SECOND_LIFE] i癟inde arama yap" name="search_combo_editor"/>
- </search_combo_box>
- </panel>
- <favorites_bar name="favorite" tool_tip="Second Life i癟erisinde s覺k kulland覺覺n覺z yerlere h覺zla erimek i癟in Yer 襤mlerini buraya s羹r羹kleyin!">
- <label name="favorites_bar_label" tool_tip="Second Life i癟erisinde s覺k kulland覺覺n覺z yerlere h覺zla erimek i癟in Yer 襤mlerini buraya s羹r羹kleyin!">
- S覺k Kullan覺lanlar ubuu
- </label>
- <chevron_button name="&gt;&gt;" tool_tip="S覺k Kullan覺lanlar覺mdan daha 癟ok g繹ster"/>
- </favorites_bar>
+ <layout_stack name="nvp_stack">
+ <layout_panel name="navigation_layout_panel">
+ <panel name="navigation_panel">
+ <pull_button name="back_btn" tool_tip="nceki konuma geri git"/>
+ <pull_button name="forward_btn" tool_tip="Bir konum ileri git"/>
+ <button name="home_btn" tool_tip="Ana konumuma 覺覺nla"/>
+ <location_input label="Konum" name="location_combo"/>
+ </panel>
+ </layout_panel>
+ <layout_panel name="favorites_layout_panel">
+ <favorites_bar name="favorite" tool_tip="Second Life i癟erisinde s覺k kulland覺覺n覺z yerlere h覺zla erimek i癟in Yer 襤mlerini buraya s羹r羹kleyin!">
+ <label name="favorites_bar_label" tool_tip="Second Life i癟erisinde s覺k kulland覺覺n覺z yerlere h覺zla erimek i癟in Yer 襤mlerini buraya s羹r羹kleyin!">
+ Favoriler ubuu
+ </label>
+ <more_button name="&gt;&gt;" tool_tip="Favorilerimden daha 癟ok g繹ster">
+ Daha Fazla
+ </more_button>
+ </favorites_bar>
+ </layout_panel>
+ </layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_nearby_chat.xml b/indra/newview/skins/default/xui/tr/panel_nearby_chat.xml
new file mode 100644
index 0000000000..73da726cb2
--- /dev/null
+++ b/indra/newview/skins/default/xui/tr/panel_nearby_chat.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="nearby_chat">
+ <check_box label="Sohbeti 癟evir (Google taraf覺ndan desteklenir)" name="translate_chat_checkbox"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml b/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml
index cc9f531831..00cd49abcd 100644
--- a/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/tr/panel_outfit_edit.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Side tray Outfit Edit panel -->
<panel name="outfit_edit">
- <string name="No Outfit" value="K覺yafet Yok"/>
+ <string name="No Outfit" value="D覺 G繹r羹n羹m Yok"/>
<string name="unsaved_changes" value="Kaydedilmemi Deiiklikler"/>
<string name="now_editing" value="imdi D羹zenleniyor"/>
<panel.string name="not_available">
@@ -20,7 +20,7 @@
<panel name="header_panel">
<panel name="outfit_name_and_status">
<text name="status" value="imdi d羹zenleniyor..."/>
- <text name="curr_outfit_name" value="[Mevcut K覺yafet]"/>
+ <text name="curr_outfit_name" value="[Mevcut D覺 G繹r羹n羹m]"/>
</panel>
</panel>
<layout_stack name="im_panels">
diff --git a/indra/newview/skins/default/xui/tr/panel_outfits_list.xml b/indra/newview/skins/default/xui/tr/panel_outfits_list.xml
index 12892e1642..60a3576d84 100644
--- a/indra/newview/skins/default/xui/tr/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/tr/panel_outfits_list.xml
@@ -6,6 +6,6 @@
</accordion>
<panel name="bottom_panel">
<menu_button name="options_gear_btn" tool_tip="襤lave se癟enekleri g繹ster"/>
- <button name="trash_btn" tool_tip="Se癟ili k覺yafeti sil"/>
+ <button name="trash_btn" tool_tip="Se癟ili d覺 g繹r羹n羹m羹 sil"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_people.xml b/indra/newview/skins/default/xui/tr/panel_people.xml
index 96701fbd84..7d42e3ab79 100644
--- a/indra/newview/skins/default/xui/tr/panel_people.xml
+++ b/indra/newview/skins/default/xui/tr/panel_people.xml
@@ -3,7 +3,7 @@
<panel label="Kiiler" name="people_panel">
<string name="no_recent_people" value="Yak覺n zamanl覺 kii yok. Birlikte tak覺lacak kiiler mi ar覺yorsunuz? [secondlife:///app/search/people Aray覺] veya [secondlife:///app/worldmap D羹nya Haritas覺n覺] deneyin."/>
<string name="no_filtered_recent_people" value="Arad覺覺n覺z覺 bulamad覺n覺z m覺? [secondlife:///app/search/people/[SEARCH_TERM] Ara] deneyin."/>
- <string name="no_one_near" value="Yak覺nda kimse yok. Birlikte tak覺lacak kiiler mi ar覺yorsunuz? [secondlife:///app/search/people Aray覺] veya [secondlife:///app/worldmap D羹nya Haritas覺n覺] deneyin."/>
+ <string name="no_one_near" value="Yak覺nda kimse yok. Birlikte tak覺lacak kiiler mi ar覺yorsunuz? [secondlife:///app/search/people Aray覺n] veya [secondlife:///app/worldmap D羹nya Haritas覺n覺] deneyin."/>
<string name="no_one_filtered_near" value="Arad覺覺n覺z覺 bulamad覺n覺z m覺? [secondlife:///app/search/people/[SEARCH_TERM] Ara] deneyin."/>
<string name="no_friends_online" value="evrimi癟i arkada yok"/>
<string name="no_friends" value="Arkada yok"/>
diff --git a/indra/newview/skins/default/xui/tr/panel_picks.xml b/indra/newview/skins/default/xui/tr/panel_picks.xml
index a36f3faf03..26beac7854 100644
--- a/indra/newview/skins/default/xui/tr/panel_picks.xml
+++ b/indra/newview/skins/default/xui/tr/panel_picks.xml
@@ -1,22 +1,22 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Favorilerim" name="panel_picks">
- <string name="no_picks" value="Favori Yok"/>
+ <string name="no_picks" value="Se癟me Yok"/>
<string name="no_classifieds" value="襤lan Yok"/>
<accordion name="accordion">
- <accordion_tab name="tab_picks" title="Favorilerim"/>
+ <accordion_tab name="tab_picks" title="Se癟melerim"/>
<accordion_tab name="tab_classifieds" title="襤lanlar"/>
</accordion>
<panel label="bottom_panel" name="edit_panel">
<layout_stack name="edit_panel_ls">
<layout_panel name="gear_menu_btn">
- <button name="new_btn" tool_tip="Mevcut konumda yeni bir favori veya ilan oluturun"/>
+ <button name="new_btn" tool_tip="Mevcut konumda yeni bir se癟me veya ilan oluturun"/>
</layout_panel>
</layout_stack>
</panel>
<panel name="buttons_cucks">
<layout_stack name="buttons_cucks_ls">
<layout_panel name="info_btn_lp">
- <button label="Bilgi" name="info_btn" tool_tip="Favori bilgilerini g繹ster"/>
+ <button label="Bilgi" name="info_btn" tool_tip="Se癟me bilgilerini g繹ster"/>
</layout_panel>
<layout_panel name="teleport_btn_lp">
<button label="I覺nla" name="teleport_btn" tool_tip="襤likili alana 覺覺nlan覺n"/>
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml
index bb7e6da68c..aeef737420 100644
--- a/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_chat.xml
@@ -50,7 +50,7 @@
<combo_box.item label="郕邽邿 (Rus癟a)" name="Russian"/>
<combo_box.item label="T羹rk癟e (T羹rk癟e)" name="Turkish"/>
<combo_box.item label="苺郕訄郇郕訄 (Ukraynaca)" name="Ukrainian"/>
- <combo_box.item label="銝剜 (蝞雿) (ince)" name="Chinese"/>
+ <combo_box.item label="銝剜 (甇擃) (ince)" name="Chinese"/>
<combo_box.item label="交祈 (Japonca)" name="Japanese"/>
<combo_box.item label="窱原 (Korece)" name="Korean"/>
</combo_box>
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_general.xml b/indra/newview/skins/default/xui/tr/panel_preferences_general.xml
index bd651049d0..fbfc07c4b8 100644
--- a/indra/newview/skins/default/xui/tr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_general.xml
@@ -5,16 +5,18 @@
</text>
<combo_box name="language_combobox">
<combo_box.item label="Sistem varsay覺lan覺" name="System Default Language"/>
- <combo_box.item label="襤ngilizce" name="English"/>
+ <combo_box.item label="English (襤ngilizce)" name="English"/>
<combo_box.item label="Dansk (Danca) - Beta" name="Danish"/>
<combo_box.item label="Deutsch (Almanca) - Beta" name="Deutsch(German)"/>
<combo_box.item label="Espa簽ol (襤spanyolca) - Beta" name="Spanish"/>
<combo_box.item label="Fran癟ais (Frans覺zca) - Beta" name="French"/>
<combo_box.item label="Italiano (襤talyanca) - Beta" name="Italian"/>
- <combo_box.item label="Nederlands (Felemek癟e) - Beta" name="Dutch"/>
<combo_box.item label="Polski (Leh癟e) - Beta" name="Polish"/>
<combo_box.item label="Portugu礙s (Portekizce) - Beta" name="Portugese"/>
+ <combo_box.item label="郕邽邿 (Rus癟a) - Beta" name="Russian"/>
+ <combo_box.item label="T羹rk癟e - Beta" name="Turkish"/>
<combo_box.item label="交祈 (Japonca) - Beta" name="(Japanese)"/>
+ <combo_box.item label="甇擃銝剜 (Geleneksel ince) - Beta" name="Traditional Chinese"/>
</combo_box>
<text name="language_textbox2">
(Yeniden balatma gerekir)
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_move.xml b/indra/newview/skins/default/xui/tr/panel_preferences_move.xml
index da102b078c..c35eaec9c3 100644
--- a/indra/newview/skins/default/xui/tr/panel_preferences_move.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_move.xml
@@ -7,18 +7,33 @@
</text>
<check_box label="襤na Et/D羹zenle" name="edit_camera_movement" tool_tip="D羹zenleme moduna girerken ve d羹zenleme modundan 癟覺karken otomatik kamera konumunu kullan覺n"/>
<check_box label="G繹r羹n羹m" name="appearance_camera_movement" tool_tip="D羹zenleme modundayken otomatik kamera konumunu kullan"/>
- <check_box initial_value="true" label="Kenar 癟ubuu" name="appearance_sidebar_positioning" tool_tip="Kenar 癟ubuu i癟in otomatik kamera konumunu kullan"/>
+ <text name="keyboard_lbl">
+ Klavye:
+ </text>
+ <check_box label="Ok tular覺 beni her zaman hareket ettirir" name="arrow_keys_move_avatar_check"/>
+ <check_box label="Komak i癟in iki kez dokun ve tut" name="tap_tap_hold_to_run"/>
+ <text name="mouse_lbl">
+ Fare:
+ </text>
<check_box label="Fare 羹zerinden g繹r羹n羹mde beni g繹ster" name="first_person_avatar_visible"/>
<text name=" Mouse Sensitivity">
Fare 羹zerinden g繹r羹n羹mde fare hassasiyeti
</text>
<check_box label="Tersine 癟evir" name="invert_mouse"/>
- <check_box label="Ok tular覺 beni her zaman hareket ettirir" name="arrow_keys_move_avatar_check"/>
- <check_box label="Komak i癟in iki kez dokun ve tut" name="tap_tap_hold_to_run"/>
- <check_box label="ift T覺klay覺nca unu yap:" name="double_click_chkbox"/>
- <radio_group name="double_click_action">
- <radio_item label="I覺nla" name="radio_teleport"/>
- <radio_item label="Otomatik pilot" name="radio_autopilot"/>
- </radio_group>
+ <text name="single_click_action_lbl">
+ Arazi 羹zerine tek t覺klama:
+ </text>
+ <combo_box name="single_click_action_combo">
+ <combo_box.item label="Eylem yok" name="0"/>
+ <combo_box.item label="T覺klanan noktaya hareket et" name="1"/>
+ </combo_box>
+ <text name="double_click_action_lbl">
+ Arazi 羹zerine 癟ift t覺klama:
+ </text>
+ <combo_box name="double_click_action_combo">
+ <combo_box.item label="Eylem yok" name="0"/>
+ <combo_box.item label="T覺klanan noktaya hareket et" name="1"/>
+ <combo_box.item label="T覺klanan noktaya 覺覺nla" name="2"/>
+ </combo_box>
<button label="Dier Ayg覺tlar" name="joystick_setup_button"/>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml
index 38fa8ab7f9..e76616f667 100644
--- a/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_privacy.xml
@@ -11,7 +11,7 @@
<check_box label="evrimi癟i olduumu sadece arkadalar ve gruplar bilsin" name="online_visibility"/>
<check_box label="Sadece arkadalar ve gruplar beni aras覺n veya A襤 g繹ndersin" name="voice_call_friends_only_check"/>
<check_box label="Aramalar覺 sonland覺r覺rken mikrofonu kapat" name="auto_disengage_mic_check"/>
- <check_box label="Oturum A癟arken S覺k Kullan覺lan Yer 襤mlerimi G繹ster (&apos;Buradan bala&apos; a癟覺l覺r men羹s羹nden)" name="favorites_on_login_check"/>
+ <check_box label="Oturum A癟arken Favori Yer 襤mlerimi G繹ster (&apos;Buradan bala&apos; a癟覺l覺r men羹s羹nden)" name="favorites_on_login_check"/>
<text name="Logs:">
Sohbet G羹nl羹kleri:
</text>
diff --git a/indra/newview/skins/default/xui/tr/panel_profile_view.xml b/indra/newview/skins/default/xui/tr/panel_profile_view.xml
index c5cee39b70..17c5002bd7 100644
--- a/indra/newview/skins/default/xui/tr/panel_profile_view.xml
+++ b/indra/newview/skins/default/xui/tr/panel_profile_view.xml
@@ -14,7 +14,7 @@
<text name="user_label" value="Kullan覺c覺 Ad覺:"/>
<tab_container name="tabs">
<panel label="PROF襤L" name="panel_profile"/>
- <panel label="FAVOR襤LER" name="panel_picks"/>
+ <panel label="SEMELER" name="panel_picks"/>
<panel label="NOTLAR &amp; G襤ZL襤L襤K" name="panel_notes"/>
</tab_container>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_status_bar.xml b/indra/newview/skins/default/xui/tr/panel_status_bar.xml
index a7491e9c88..63726b94e2 100644
--- a/indra/newview/skins/default/xui/tr/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/tr/panel_status_bar.xml
@@ -17,12 +17,9 @@
</panel.string>
<panel name="balance_bg">
<text name="balance" tool_tip="L$ bakiyenizi yenilemek i癟in buraya t覺klay覺n" value="L$20"/>
- <button label="L$ SATIN AL" name="buyL" tool_tip="Daha fazla L$ sat覺n almak i癟in t覺klay覺n"/>
+ <button label="L$ Sat覺n Al" name="buyL" tool_tip="Daha fazla L$ sat覺n almak i癟in t覺klay覺n"/>
+ <button label="Al覺veri yap" name="goShop" tool_tip="Second Life Pazaryeri A癟"/>
</panel>
- <combo_box name="mode_combo" tool_tip="Modunuzu se癟in. H覺zl覺 ve kolay keif yapmak ile sohbet etmek i癟in Temel se癟imini yap覺n. Daha fazla 繹zellie erimek i癟in Gelimi se癟imini yap覺n.">
- <combo_box.item label="Temel Mod" name="Basic"/>
- <combo_box.item label="Gelimi Mod" name="Advanced"/>
- </combo_box>
<text name="TimeText" tool_tip="Ge癟erli zaman (Pasifik)">
24:00 AM PST
</text>
diff --git a/indra/newview/skins/default/xui/tr/role_actions.xml b/indra/newview/skins/default/xui/tr/role_actions.xml
index 002589b276..18f7d6dca2 100644
--- a/indra/newview/skins/default/xui/tr/role_actions.xml
+++ b/indra/newview/skins/default/xui/tr/role_actions.xml
@@ -53,10 +53,10 @@
<action description="Gruba ait olmayan nesneleri iade et" longdescription="Grubun sahip olduu parseller 羹zerinde gruba ait olmayan nesneleri Arazi Hakk覺nda &gt; Nesneler sekmesinden iade edin." name="land return non group" value="34"/>
<action description="Linden bitkilerini kullanarak bah癟e d羹zenleme" longdescription="Linden aa癟lar覺n覺, bitkilerini ve 癟imleri yerletirerek veya yerlerini deitirerek bah癟e d羹zenleme yetenei. Bu 繹eler envanterinizin K羹t羹phane &gt; Nesneler klas繹r羹 i癟inde bulunabilir veya 襤na Et men羹s羹nden oluturulabilir." name="land gardening" value="35"/>
</action_set>
- <action_set description="Bu Yeteneklere grubun sahip olduu nesneleri devretme, deitirme ve satma g羹癟leri de dahildir. Bu deiiklikler 襤na Ara癟lar覺 &gt; Genel sekmesinden yap覺labilir. Bir nesneyi sa t覺klat覺p D羹zenle&apos;yi se癟erek ayarlar覺n覺 g繹rebilirsiniz." name="Object Management">
- <action description="Nesneleri gruba devret" longdescription="Nesneleri 襤na Ara癟lar覺 &gt; Genel sekmesinden gruba devredin." name="object deed" value="36"/>
- <action description="Grubun sahip olduu nesneleri kullan (ta覺, kopyala, deitir)" longdescription="Grubun sahip olduu nesneleri, 襤na Ara癟lar覺 &gt; Genel sekmesi 羹zerinden kullan覺n (ta覺y覺n, kopyalay覺n, deitirin)." name="object manipulate" value="38"/>
- <action description="Grubun sahip olduu nesneleri sat覺a 癟覺kar" longdescription="Grubun sahip olduu nesneleri 襤na Ara癟lar覺 &gt; Genel sekmesinden sat覺a 癟覺kar覺n." name="object set sale" value="39"/>
+ <action_set description="Bu Yeteneklere grubun sahip olduu nesneleri devretme, deitirme ve satma g羹癟leri de dahildir. Bu deiiklikler 襤na Et Ara癟lar覺 &gt; Genel sekmesinden yap覺labilir. Bir nesneyi sa t覺klat覺p D羹zenle&apos;yi se癟erek ayarlar覺n覺 g繹rebilirsiniz." name="Object Management">
+ <action description="Nesneleri gruba devret" longdescription="Nesneleri 襤na Et Ara癟lar覺 &gt; Genel sekmesinden gruba devredin." name="object deed" value="36"/>
+ <action description="Grubun sahip olduu nesneleri kullan (ta覺, kopyala, deitir)" longdescription="Grubun sahip olduu nesneleri, 襤na Et Ara癟lar覺 &gt; Genel sekmesi 羹zerinden kullan覺n (ta覺y覺n, kopyalay覺n, deitirin)." name="object manipulate" value="38"/>
+ <action description="Grubun sahip olduu nesneleri sat覺a 癟覺kar" longdescription="Grubun sahip olduu nesneleri 襤na Et Ara癟lar覺 &gt; Genel sekmesinden sat覺a 癟覺kar覺n." name="object set sale" value="39"/>
</action_set>
<action_set description="Bu Yeteneklere yelerin grup bor癟lar覺n覺 繹demesini ve grup k璽r paylar覺n覺 almas覺n覺 salayan ve grup hesab覺n覺n ge癟mi bilgilerine eriimi s覺n覺rland覺ran g羹癟ler de dahildir." name="Accounting">
<action description="Grup bor癟lar覺n覺 繹de ve grup k璽r paylar覺n覺 al" longdescription="Bu Yetenee sahip bir Roldeki yeler otomatik olarak grup bor癟lar覺n覺 繹deyecek ve grup k璽r paylar覺n覺 alacakt覺r. Bu da grubun sahip olduu arazi sat覺lar覺ndan kendilerine d羹en ve g羹nl羹k olarak da覺t覺lan ks覺m覺 alacaklar覺 gibi parsel i癟in ilan verme 羹creti gibi masraflara da katk覺da bulunacaklar覺 anlam覺na gelir." name="accounting accountable" value="40"/>
diff --git a/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml b/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml
index 75528974ec..b632f21cf5 100644
--- a/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/tr/sidepanel_appearance.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="K覺yafetler" name="appearance panel">
- <string name="No Outfit" value="K覺yafet Yok"/>
+<panel label="D覺 G繹r羹n羹mler" name="appearance panel">
+ <string name="No Outfit" value="D覺 G繹r羹n羹m Yok"/>
<string name="Unsaved Changes" value="Kaydedilmemi deiiklikler"/>
<string name="Now Wearing" value="imdi giyiyor..."/>
- <string name="Changing outfits" value="K覺yafetleri deitiriyor"/>
+ <string name="Changing outfits" value="D覺 g繹r羹n羹mler deitiriliyor"/>
<panel name="panel_currentlook">
<button label="E" name="editappearance_btn"/>
<button label="O" name="openoutfit_btn"/>
@@ -11,9 +11,9 @@
(Durum)
</text>
<text name="currentlook_name">
- MOOSE gibi ger癟ekten Uzun bir Adla K覺yafetim
+ MOOSE gibi ger癟ekten Uzun bir Adla D覺 G繹r羹n羹m羹m
</text>
- <button label="" name="edit_outfit_btn" tool_tip="Bu k覺yafeti d羹zenle"/>
+ <button label="" name="edit_outfit_btn" tool_tip="Bu d覺 g繹r羹n羹m羹 d羹zenle"/>
</panel>
- <filter_editor label="K覺yafetleri Filtrele" name="Filter"/>
+ <filter_editor label="D覺 G繹r羹n羹mleri Filtrele" name="Filter"/>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml b/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml
index e02eae1d92..70c449b402 100644
--- a/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/sidepanel_inventory.xml
@@ -7,14 +7,14 @@
<layout_panel name="inbox_layout_panel">
<panel label="" name="marketplace_inbox">
<string name="InboxLabelWithArg">
- Al覺nan eler ([NUM])
+ Al覺nan 繹eler ([NUM])
</string>
<string name="InboxLabelNoArg">
- Al覺nan eler
+ Al覺nan 繹eler
</string>
- <button label="Al覺nan eler" name="inbox_btn"/>
+ <button label="Al覺nan 繹eler" name="inbox_btn"/>
<text name="inbox_fresh_new_count">
- [NUM] Yeni
+ [NUM] yeni
</text>
<panel tool_tip="Drag and drop items to your inventory to manage and use them">
<text name="inbox_inventory_placeholder">
@@ -26,12 +26,12 @@
<layout_panel name="outbox_layout_panel">
<panel label="" name="marketplace_outbox">
<string name="OutboxLabelWithArg">
- Sat覺c覺 Giden Kutusu ([NUM])
+ Sat覺c覺 giden kutusu ([NUM])
</string>
<string name="OutboxLabelNoArg">
- Sat覺c覺 Giden Kutusu
+ Sat覺c覺 giden kutusu
</string>
- <button label="Sat覺c覺 Giden Kutusu" name="outbox_btn"/>
+ <button label="Sat覺c覺 giden kutusu" name="outbox_btn"/>
<button label="" name="outbox_sync_btn" tool_tip="Pazaryeri Vitrinime G繹nder"/>
<panel>
<panel name="outbox_inventory_placeholder_panel">
diff --git a/indra/newview/skins/default/xui/tr/strings.xml b/indra/newview/skins/default/xui/tr/strings.xml
index 543989804a..a17d78486d 100644
--- a/indra/newview/skins/default/xui/tr/strings.xml
+++ b/indra/newview/skins/default/xui/tr/strings.xml
@@ -29,22 +29,22 @@
nbellek temizleniyor...
</string>
<string name="StartupInitializingTextureCache">
- Doku nbellei Balat覺l覺yor...
+ Doku 繹nbellei balat覺l覺yor...
</string>
<string name="StartupInitializingVFS">
VFS Balat覺l覺yor...
</string>
<string name="StartupRequireDriverUpdate">
- Grafik Balatma Baar覺lamad覺. L羹tfen Grafik S羹r羹c羹n羹z羹 G羹ncelletirin!
+ Grafik balatma baar覺lamad覺. L羹tfen grafik s羹r羹c羹n羹z羹 g羹ncelletirin!
</string>
<string name="ProgressRestoring">
Geri y羹kleniyor...
</string>
<string name="ProgressChangingResolution">
- 繹z羹n羹rl羹k Deitiriliyor...
+ 繹z羹n羹rl羹k deitiriliyor...
</string>
<string name="Fullbright">
- Tam Parlak (Eski)
+ Tam parlak (eski)
</string>
<string name="LoginInProgress">
Oturum a癟覺l覺yor. [APP_NAME] kilitlenmi g繹r羹nebilir. L羹tfen bekleyin.
@@ -77,10 +77,10 @@
nbellek dosyalar覺 dorulan覺yor (60-90 saniye zaman alabilir)...
</string>
<string name="LoginProcessingResponse">
- Yan覺t 襤leniyor...
+ Yan覺t ileniyor...
</string>
<string name="LoginInitializingWorld">
- D羹nya Balat覺l覺yor...
+ D羹nya balat覺l覺yor...
</string>
<string name="LoginDecodingImages">
G繹r羹nt羹lerin kodu 癟繹z羹l羹yor...
@@ -128,7 +128,7 @@
A sunucusu taraf覺ndan d繹nd羹r羹len sertifika imzas覺 dorulanamad覺. L羹tfen A y繹neticinize bavurun.
</string>
<string name="LoginFailedNoNetwork">
- A Hatas覺: Balant覺 kurulamad覺, l羹tfen a balant覺n覺z覺 kontrol edin.
+ A hatas覺: Balant覺 kurulamad覺, l羹tfen a balant覺n覺z覺 kontrol edin.
</string>
<string name="LoginFailed">
Oturum a癟覺lamad覺.
@@ -584,7 +584,7 @@ L羹tfen bir dakika i癟erisinde tekrar oturum a癟may覺 deneyin.
sim durumu
</string>
<string name="favorite">
- s覺k kullan覺lan
+ favori
</string>
<string name="symbolic link">
balant覺
@@ -1205,7 +1205,7 @@ L羹tfen bir dakika i癟erisinde tekrar oturum a癟may覺 deneyin.
Arad覺覺n覺z覺 bulamad覺n覺z m覺? [secondlife:///app/search/places/[SEARCH_TERM] Arama] ile bulmay覺 deneyin.
</string>
<string name="FavoritesNoMatchingItems">
- Bir yer imini s覺k kullan覺lanlar覺n覺za eklemek i癟in buraya s羹r羹kleyin.
+ Bir yer imini favorilerinize eklemek i癟in buraya s羹r羹kleyin.
</string>
<string name="InventoryNoTexture">
Envanterinizde bu dokunun kopyas覺 yok
@@ -1273,6 +1273,9 @@ L羹tfen bir dakika i癟erisinde tekrar oturum a癟may覺 deneyin.
<string name="Marketplace Error Internal Import">
Hata: Bu 繹ede bir sorun var. Daha sonra tekrar deneyin.
</string>
+ <string name="Open landmarks">
+ A癟覺k yer imleri
+ </string>
<string name="no_transfer" value="(aktar覺m yok)"/>
<string name="no_modify" value="(deitirme yok)"/>
<string name="no_copy" value="(kopya yok)"/>
@@ -1377,10 +1380,10 @@ L羹tfen bir dakika i癟erisinde tekrar oturum a癟may覺 deneyin.
Mimikler
</string>
<string name="InvFolder Favorite">
- S覺k Kullan覺lanlar覺m
+ Favorilerim
</string>
<string name="InvFolder favorite">
- S覺k Kullan覺lanlar覺m
+ Favorilerim
</string>
<string name="InvFolder Current Outfit">
Mevcut D覺 G繹r羹n羹m
@@ -1982,10 +1985,10 @@ L羹tfen bir dakika i癟erisinde tekrar oturum a癟may覺 deneyin.
(yay覺nland覺ktan sonra g羹ncelletirilir)
</string>
<string name="NoPicksClassifiedsText">
- Herhangi bir Favori veya 襤lan oluturmad覺n覺z. Bir Favori veya 襤lan oluturmak i癟in aa覺daki Art覺 d羹mesine t覺klay覺n.
+ Herhangi bir Se癟me veya 襤lan oluturmad覺n覺z. Bir Se癟me veya 襤lan oluturmak i癟in aa覺daki Art覺 d羹mesine t覺klay覺n.
</string>
<string name="NoAvatarPicksClassifiedsText">
- Kullan覺c覺n覺n herhangi bir favorisi veya ilan覺 yok
+ Kullan覺c覺n覺n herhangi bir se癟mesi veya ilan覺 yok
</string>
<string name="PicksClassifiedsLoadingText">
Y羹kleniyor...
@@ -4162,7 +4165,7 @@ K繹t羹ye Kullan覺m覺 Bildirme
Konuma Mimikleri
</string>
<string name="Common Gestures">
- S覺k Kullan覺lan Mimikler
+ Favori Mimikler
</string>
<string name="Male - Excuse me">
Erkek - Afedersiniz
@@ -4251,8 +4254,8 @@ K繹t羹ye Kullan覺m覺 Bildirme
<string name="Female - Wow">
Kad覺n - Vay be
</string>
- <string name="/bow1">
- /selamlama1
+ <string name="/bow">
+ /selamlama
</string>
<string name="/clap">
/alk覺
@@ -4776,4 +4779,172 @@ D羹zenleyici yolunu 癟ift t覺rnakla 癟evrelemeyi deneyin.
<string name="ParticleHiding">
Par癟ac覺klar Gizleniyor
</string>
+ <string name="Command_AboutLand_Label">
+ Arazi hakk覺nda
+ </string>
+ <string name="Command_Appearance_Label">
+ G繹r羹n羹m
+ </string>
+ <string name="Command_Avatar_Label">
+ Avatar
+ </string>
+ <string name="Command_Build_Label">
+ 襤na Et
+ </string>
+ <string name="Command_Chat_Label">
+ Sohbet
+ </string>
+ <string name="Command_Compass_Label">
+ Pusula
+ </string>
+ <string name="Command_Destinations_Label">
+ Hedef Konum
+ </string>
+ <string name="Command_Gestures_Label">
+ Mimikler
+ </string>
+ <string name="Command_HowTo_Label">
+ Nas覺l yap覺l覺r
+ </string>
+ <string name="Command_Inventory_Label">
+ Envanter
+ </string>
+ <string name="Command_Map_Label">
+ Harita
+ </string>
+ <string name="Command_Marketplace_Label">
+ Pazaryeri
+ </string>
+ <string name="Command_MiniMap_Label">
+ Mini-harita
+ </string>
+ <string name="Command_Move_Label">
+ Hareket Et
+ </string>
+ <string name="Command_People_Label">
+ Kiiler
+ </string>
+ <string name="Command_Picks_Label">
+ Se癟meler
+ </string>
+ <string name="Command_Places_Label">
+ Yerler
+ </string>
+ <string name="Command_Preferences_Label">
+ Tercihler
+ </string>
+ <string name="Command_Profile_Label">
+ Profil
+ </string>
+ <string name="Command_Search_Label">
+ Ara
+ </string>
+ <string name="Command_Snapshot_Label">
+ Anl覺k g繹r羹nt羹
+ </string>
+ <string name="Command_Speak_Label">
+ Konu
+ </string>
+ <string name="Command_View_Label">
+ G繹r羹n羹m
+ </string>
+ <string name="Command_Voice_Label">
+ Yak覺ndaki ses
+ </string>
+ <string name="Command_AboutLand_Tooltip">
+ Ziyaret ettiiniz araziyle ilgili bilgi
+ </string>
+ <string name="Command_Appearance_Tooltip">
+ Avatar覺n覺z覺 deitirin
+ </string>
+ <string name="Command_Avatar_Tooltip">
+ Eksiksiz bir avatar se癟in
+ </string>
+ <string name="Command_Build_Tooltip">
+ Nesneler oluturma ve y羹zeyi ekillendirme
+ </string>
+ <string name="Command_Chat_Tooltip">
+ Metin kullanarak yak覺ndaki kiilerle sohbet etmek
+ </string>
+ <string name="Command_Compass_Tooltip">
+ Pusula
+ </string>
+ <string name="Command_Destinations_Tooltip">
+ 襤lgilendiiniz hedef konumlar
+ </string>
+ <string name="Command_Gestures_Tooltip">
+ Avatar覺n覺z i癟in mimikler
+ </string>
+ <string name="Command_HowTo_Tooltip">
+ Genel g繹revleri nas覺l yapaca覺n覺z
+ </string>
+ <string name="Command_Inventory_Tooltip">
+ Eyalar覺n覺z覺 g繹r羹nt羹leyin ve kullan覺n
+ </string>
+ <string name="Command_Map_Tooltip">
+ D羹nya haritas覺
+ </string>
+ <string name="Command_Marketplace_Tooltip">
+ Al覺veri yap
+ </string>
+ <string name="Command_MiniMap_Tooltip">
+ Yak覺ndaki kiileri g繹ster
+ </string>
+ <string name="Command_Move_Tooltip">
+ Avatar覺n覺z覺 hareket ettirmek
+ </string>
+ <string name="Command_People_Tooltip">
+ Arkadalar, gruplar ve yak覺ndaki kiiler
+ </string>
+ <string name="Command_Picks_Tooltip">
+ Profilinizde favori olarak g繹sterilecek yerler
+ </string>
+ <string name="Command_Places_Tooltip">
+ Kaydettiiniz yerler
+ </string>
+ <string name="Command_Preferences_Tooltip">
+ Tercihler
+ </string>
+ <string name="Command_Profile_Tooltip">
+ Profilinizi d羹zenleyin veya g繹r羹nt羹leyin
+ </string>
+ <string name="Command_Search_Tooltip">
+ Yerler, etkinlikler ve kiiler bulmak
+ </string>
+ <string name="Command_Snapshot_Tooltip">
+ Resim 癟ekin
+ </string>
+ <string name="Command_Speak_Tooltip">
+ Mikrofonunuzu kullanarak yak覺ndaki kiilerle konuun
+ </string>
+ <string name="Command_View_Tooltip">
+ Kamera a癟覺s覺n覺 deitirmek
+ </string>
+ <string name="Command_Voice_Tooltip">
+ Ses imkan覺na sahip yak覺ndaki kiiler
+ </string>
+ <string name="Retain%">
+ Koru %
+ </string>
+ <string name="Detail">
+ Ayr覺nt覺
+ </string>
+ <string name="Better Detail">
+ Daha 襤yi Ayr覺nt覺
+ </string>
+ <string name="Surface">
+ Y羹zey
+ </string>
+ <string name="Solid">
+ Kat覺
+ </string>
+ <string name="Wrap">
+ Sar
+ </string>
+ <string name="Preview">
+ nizleme
+ </string>
+ <string name="Normal">
+ Normal
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/zh/floater_about.xml b/indra/newview/skins/default/xui/zh/floater_about.xml
index 0ac85d399e..7e19c124a1 100644
--- a/indra/newview/skins/default/xui/zh/floater_about.xml
+++ b/indra/newview/skins/default/xui/zh/floater_about.xml
@@ -10,7 +10,7 @@
<floater.string name="AboutPosition">
You are at [POSITION_0,number,1], [POSITION_1,number,1], [POSITION_2,number,1] in [REGION] located at &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/zh/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml
deleted file mode 100644
index 84186c5836..0000000000
--- a/indra/newview/skins/default/xui/zh/floater_day_cycle_options.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Day Cycle Floater" title="亙儐啁楊頛臬">
- <tab_container name="Day Cycle Tabs">
- <panel label="亙儐" name="Day Cycle">
- <multi_slider initial_value="0" name="WLTimeSlider"/>
- <multi_slider initial_value="0" name="WLDayCycleKeys"/>
- <text name="WL12am">
- 12am
- </text>
- <text name="WL3am">
- 3am
- </text>
- <text name="WL6am">
- 6am
- </text>
- <text name="WL9amHash">
- 9am
- </text>
- <text name="WL12pmHash">
- 12pm
- </text>
- <text name="WL3pm">
- 3pm
- </text>
- <text name="WL6pm">
- 6pm
- </text>
- <text name="WL9pm">
- 9pm
- </text>
- <text name="WL12am2">
- 12am
- </text>
- <text name="WL12amHash">
- |
- </text>
- <text name="WL3amHash">
- I
- </text>
- <text name="WL6amHash">
- |
- </text>
- <text name="WL9amHash2">
- I
- </text>
- <text name="WL12pmHash2">
- |
- </text>
- <text name="WL3pmHash">
- I
- </text>
- <text name="WL6pmHash">
- |
- </text>
- <text name="WL9pmHash">
- I
- </text>
- <text name="WL12amHash2">
- |
- </text>
- <button label="Add Key" label_selected="Add Key" name="WLAddKey"/>
- <button label="Delete Key" label_selected="Delete Key" name="WLDeleteKey"/>
- <text name="WLCurKeyFrameText">
- Key Frame Settings:
- </text>
- <text name="WLCurKeyTimeText">
- Key Time:
- </text>
- <spinner label="Hour" name="WLCurKeyHour"/>
- <spinner label="Min" name="WLCurKeyMin"/>
- <text name="WLCurKeyTimeText2">
- Key Preset:
- </text>
- <combo_box label="Preset" name="WLKeyPresets"/>
- <text name="DayCycleText">
- Snap:
- </text>
- <combo_box label="鈭" name="WLSnapOptions"/>
- <text name="DayCycleText2">
- Length of Cycle:
- </text>
- <spinner label="撠" name="WLLengthOfDayHour"/>
- <spinner label="" name="WLLengthOfDayMin"/>
- <spinner label="蝘" name="WLLengthOfDaySec"/>
- <text name="DayCycleText3">
- 閬踝
- </text>
- <button label="剜" label_selected="剜" name="WLAnimSky"/>
- <button label="甇!" label_selected="甇" name="WLStopAnimSky"/>
- <button label="Use Estate Time" label_selected="Go to Estate Time" name="WLUseLindenTime"/>
- <button label="Save Test Day" label_selected="Save Test Day" name="WLSaveDayCycle"/>
- <button label="Load Test Day" label_selected="Load Test Day" name="WLLoadDayCycle"/>
- </panel>
- </tab_container>
-</floater>
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
index 29f9599c97..6827fab6e6 100644
--- a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
@@ -5,15 +5,15 @@
</text>
<combo_box name="language_combobox">
<combo_box.item label="蝟餌絞閮" name="System Default Language"/>
- <combo_box.item label="梯" name="English"/>
- <combo_box.item label="Dansk (Danish) - Beta" name="Danish"/>
- <combo_box.item label="Deutsch (German) - Beta" name="Deutsch(German)"/>
- <combo_box.item label="Espa簽ol (Spanish) - Beta" name="Spanish"/>
- <combo_box.item label="Fran癟ais (French) - Beta" name="French"/>
- <combo_box.item label="Italiano (Italian) - Beta" name="Italian"/>
- <combo_box.item label="Polski (Polish) - Beta" name="Polish"/>
- <combo_box.item label="Portugu礙s (Portuguese) - Beta" name="Portugese"/>
- <combo_box.item label="交祈 (Japanese) - Beta" name="(Japanese)"/>
+ <combo_box.item label="English 嚗梯嚗" name="English"/>
+ <combo_box.item label="Dansk 嚗銝寥漸隤嚗 - Beta" name="Danish"/>
+ <combo_box.item label="Deutsch 嚗敺瑁嚗 - Beta" name="Deutsch(German)"/>
+ <combo_box.item label="Espa簽ol 嚗镼輻剔隤嚗 - Beta" name="Spanish"/>
+ <combo_box.item label="Fran癟ais 嚗瘜隤嚗 - Beta" name="French"/>
+ <combo_box.item label="Italiano 嚗蝢拙之抵嚗 - Beta" name="Italian"/>
+ <combo_box.item label="Polski 嚗瘜Z剛嚗 - Beta" name="Polish"/>
+ <combo_box.item label="Portugu礙s 嚗∟隤嚗 - Beta" name="Portugese"/>
+ <combo_box.item label="交祈 嚗亥嚗 - Beta" name="(Japanese)"/>
</combo_box>
<text name="language_textbox2">
嚗啣嚗
diff --git a/indra/newview/tests/lltranslate_test.cpp b/indra/newview/tests/lltranslate_test.cpp
new file mode 100644
index 0000000000..10e37fae97
--- /dev/null
+++ b/indra/newview/tests/lltranslate_test.cpp
@@ -0,0 +1,345 @@
+/**
+ * @file lltranslate_test.cpp
+ *
+ * $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 "linden_common.h"
+
+#include "../test/lltut.h"
+#include "../lltranslate.h"
+#include "../llversioninfo.h"
+#include "../llviewercontrol.h"
+
+#include "llbufferstream.h"
+#include "lltrans.h"
+#include "llui.h"
+
+static const std::string GOOGLE_VALID_RESPONSE1 =
+"{\
+ \"data\": {\
+ \"translations\": [\
+ {\
+ \"translatedText\": \"郈邽赲迮\",\
+ \"detectedSourceLanguage\": \"es\"\
+ }\
+ ]\
+ }\
+}";
+
+static const std::string GOOGLE_VALID_RESPONSE2 =
+"{\
+ \"data\": {\
+ \"translations\": [\
+ {\
+ \"translatedText\": \"郈邽赲迮\"\
+ }\
+ ]\
+ }\
+}\
+";
+
+static const std::string GOOGLE_VALID_RESPONSE3 =
+"{\
+ \"error\": {\
+ \"errors\": [\
+ {\
+ \"domain\": \"global\",\
+ \"reason\": \"invalid\",\
+ \"message\": \"Invalid Value\"\
+ }\
+ ],\
+ \"code\": 400,\
+ \"message\": \"Invalid Value\"\
+ }\
+}";
+
+static const std::string BING_VALID_RESPONSE1 =
+"<string xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">邽赲迮</string>";
+
+static const std::string BING_VALID_RESPONSE2 =
+"<html><body><h1>Argument Exception</h1><p>Method: Translate()</p><p>Parameter: </p>\
+<p>Message: 'from' must be a valid language</p><code></code>\
+<p>message id=3743.V2_Rest.Translate.58E8454F</p></body></html>";
+
+static const std::string BING_VALID_RESPONSE3 =
+"<html><body><h1>Argument Exception</h1><p>Method: Translate()</p>\
+<p>Parameter: appId</p><p>Message: Invalid appId&#xD;\nParameter name: appId</p>\
+<code></code><p>message id=3737.V2_Rest.Translate.56016759</p></body></html>";
+
+namespace tut
+{
+ class translate_test
+ {
+ protected:
+ void test_translation(
+ LLTranslationAPIHandler& handler,
+ int status, const std::string& resp,
+ const std::string& exp_trans, const std::string& exp_lang, const std::string& exp_err)
+ {
+ std::string translation, detected_lang, err_msg;
+ bool rc = handler.parseResponse(status, resp, translation, detected_lang, err_msg);
+ ensure_equals("rc", rc, (status == 200));
+ ensure_equals("err_msg", err_msg, exp_err);
+ ensure_equals("translation", translation, exp_trans);
+ ensure_equals("detected_lang", detected_lang, exp_lang);
+ }
+
+ LLGoogleTranslationHandler mGoogle;
+ LLBingTranslationHandler mBing;
+ };
+
+ typedef test_group<translate_test> translate_test_group_t;
+ typedef translate_test_group_t::object translate_test_object_t;
+ tut::translate_test_group_t tut_translate("LLTranslate");
+
+ template<> template<>
+ void translate_test_object_t::test<1>()
+ {
+ test_translation(mGoogle, 200, GOOGLE_VALID_RESPONSE1, "郈邽赲迮", "es", "");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<2>()
+ {
+ test_translation(mGoogle, 200, GOOGLE_VALID_RESPONSE2, "郈邽赲迮", "", "");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<3>()
+ {
+ test_translation(mGoogle, 400, GOOGLE_VALID_RESPONSE3, "", "", "Invalid Value");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<4>()
+ {
+ test_translation(mGoogle, 400,
+ "",
+ "", "", "* Line 1, Column 1\n Syntax error: value, object or array expected.\n");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<5>()
+ {
+ test_translation(mGoogle, 400,
+ "[]",
+ "", "", "");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<6>()
+ {
+ test_translation(mGoogle, 400,
+ "{\"oops\": \"invalid\"}",
+ "", "", "");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<7>()
+ {
+ test_translation(mGoogle, 400,
+ "{\"data\": {}}",
+ "", "", "");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<8>()
+ {
+ test_translation(mGoogle, 400,
+ "{\"data\": { \"translations\": [ {} ] }}",
+ "", "", "");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<9>()
+ {
+ test_translation(mGoogle, 400,
+ "{\"data\": { \"translations\": [ { \"translatedTextZZZ\": \"郈邽赲迮\", \"detectedSourceLanguageZZZ\": \"es\" } ] }}",
+ "", "", "");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<10>()
+ {
+ test_translation(mBing, 200, BING_VALID_RESPONSE1, "邽赲迮", "", "");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<11>()
+ {
+ test_translation(mBing, 400, BING_VALID_RESPONSE2, "", "", "'from' must be a valid language");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<12>()
+ {
+ test_translation(mBing, 400, BING_VALID_RESPONSE3, "", "", "Invalid appId\nParameter name: appId");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<13>()
+ {
+ test_translation(mBing, 200,
+ "邽赲迮</string>",
+ "邽赲迮", "", "");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<14>()
+ {
+ test_translation(mBing, 200,
+ "<string xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">邽赲迮",
+ "邽赲迮", "", "");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<15>()
+ {
+ test_translation(mBing, 200,
+ "邽赲迮",
+ "邽赲迮", "", "");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<16>()
+ {
+ test_translation(mBing, 400,
+ "Message: some error</p>",
+ "", "", "some error");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<17>()
+ {
+ test_translation(mBing, 400,
+ "Message: some error",
+ "", "", "some error");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<18>()
+ {
+ test_translation(mBing, 400,
+ "some error</p>",
+ "", "", "some error");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<19>()
+ {
+ test_translation(mBing, 400,
+ "some error",
+ "", "", "some error");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<20>()
+ {
+ std::string url;
+ mBing.getTranslateURL(url, "en", "es", "hi");
+ ensure_equals("bing URL", url,
+ "http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=dummy&text=hi&to=es&from=en");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<21>()
+ {
+ std::string url;
+ mBing.getTranslateURL(url, "", "es", "hi");
+ ensure_equals("bing URL", url,
+ "http://api.microsofttranslator.com/v2/Http.svc/Translate?appId=dummy&text=hi&to=es");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<22>()
+ {
+ std::string url;
+ mGoogle.getTranslateURL(url, "en", "es", "hi");
+ ensure_equals("google URL", url,
+ "https://www.googleapis.com/language/translate/v2?key=dummy&q=hi&target=es&source=en");
+ }
+
+ template<> template<>
+ void translate_test_object_t::test<23>()
+ {
+ std::string url;
+ mGoogle.getTranslateURL(url, "", "es", "hi");
+ ensure_equals("google URL", url,
+ "https://www.googleapis.com/language/translate/v2?key=dummy&q=hi&target=es");
+ }
+}
+
+//== Misc stubs ===============================================================
+LLControlGroup gSavedSettings("test");
+
+std::string LLUI::getLanguage() { return "en"; }
+std::string LLTrans::getString(const std::string &xml_desc, const LLStringUtil::format_map_t& args) { return "dummy"; }
+
+LLControlGroup::LLControlGroup(const std::string& name) : LLInstanceTracker<LLControlGroup, std::string>(name) {}
+std::string LLControlGroup::getString(const std::string& name) { return "dummy"; }
+LLControlGroup::~LLControlGroup() {}
+
+namespace boost {
+ void intrusive_ptr_add_ref(LLCurl::Responder*) {}
+ void intrusive_ptr_release(LLCurl::Responder*) {}
+}
+
+LLCurl::Responder::Responder() {}
+void LLCurl::Responder::completedHeader(U32, std::string const&, LLSD const&) {}
+void LLCurl::Responder::completedRaw(U32, const std::string&, const LLChannelDescriptors&, const LLIOPipe::buffer_ptr_t& buffer) {}
+void LLCurl::Responder::completed(U32, std::string const&, LLSD const&) {}
+void LLCurl::Responder::error(U32, std::string const&) {}
+void LLCurl::Responder::errorWithContent(U32, std::string const&, LLSD const&) {}
+void LLCurl::Responder::result(LLSD const&) {}
+LLCurl::Responder::~Responder() {}
+
+void LLHTTPClient::get(const std::string&, const LLSD&, ResponderPtr, const LLSD&, const F32) {}
+void LLHTTPClient::get(const std::string&, boost::intrusive_ptr<LLCurl::Responder>, const LLSD&, const F32) {}
+
+LLBufferStream::LLBufferStream(const LLChannelDescriptors& channels, LLBufferArray* buffer)
+: std::iostream(&mStreamBuf), mStreamBuf(channels, buffer) {}
+LLBufferStream::~LLBufferStream() {}
+
+LLBufferStreamBuf::LLBufferStreamBuf(const LLChannelDescriptors&, LLBufferArray*) {}
+#if( LL_WINDOWS || __GNUC__ > 2)
+LLBufferStreamBuf::pos_type LLBufferStreamBuf::seekoff(
+ off_type off,
+ std::ios::seekdir way,
+ std::ios::openmode which)
+#else
+streampos LLBufferStreamBuf::seekoff(
+ streamoff off,
+ std::ios::seekdir way,
+ std::ios::openmode which)
+#endif
+{ return 0; }
+int LLBufferStreamBuf::sync() {return 0;}
+int LLBufferStreamBuf::underflow() {return 0;}
+int LLBufferStreamBuf::overflow(int) {return 0;}
+LLBufferStreamBuf::~LLBufferStreamBuf() {}
+
+S32 LLVersionInfo::getBuild() { return 0; }
+const std::string& LLVersionInfo::getChannel() {static std::string dummy; return dummy;}
+S32 LLVersionInfo::getMajor() { return 0; }
+S32 LLVersionInfo::getMinor() { return 0; }
+S32 LLVersionInfo::getPatch() { return 0; }
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index f0bee2bfee..0931c4ec9b 100644..100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -495,8 +495,9 @@ class WindowsManifest(ViewerManifest):
# tag:"crash-logger" here as a cue to the exporter
self.path(src='../win_crash_logger/%s/windows-crash-logger.exe' % self.args['configuration'],
dst="win_crash_logger.exe")
- self.path(src='../win_updater/%s/windows-updater.exe' % self.args['configuration'],
- dst="updater.exe")
+# For CHOP-397, windows updater no longer used.
+# self.path(src='../win_updater/%s/windows-updater.exe' % self.args['configuration'],
+# dst="updater.exe")
if not self.is_packaging_viewer():
self.package_file = "copied_deps"
@@ -573,10 +574,10 @@ class WindowsManifest(ViewerManifest):
grid_vars_template = """
OutFile "%(installer_file)s"
!define INSTFLAGS "%(flags)s"
- !define INSTNAME "SecondLifeViewer2"
- !define SHORTCUT "Second Life Viewer 2"
+ !define INSTNAME "SecondLifeViewer"
+ !define SHORTCUT "Second Life Viewer"
!define URLNAME "secondlife"
- Caption "Second Life ${VERSION}"
+ Caption "Second Life"
"""
else:
# beta grid viewer
@@ -804,7 +805,7 @@ class DarwinManifest(ViewerManifest):
self.run_command("chmod +x %r" % os.path.join(self.get_dst_prefix(), script))
def package_finish(self):
- channel_standin = 'Second Life Viewer 2' # hah, our default channel is not usable on its own
+ channel_standin = 'Second Life Viewer' # hah, our default channel is not usable on its own
if not self.default_channel():
channel_standin = self.channel()
diff --git a/indra/viewer_components/updater/scripts/darwin/update_install b/indra/viewer_components/updater/scripts/darwin/update_install
index 6a95f96d86..e7f36dc5a3 100644..100755
--- a/indra/viewer_components/updater/scripts/darwin/update_install
+++ b/indra/viewer_components/updater/scripts/darwin/update_install
@@ -6,5 +6,5 @@
#
cd "$(dirname "$0")"
-(../Resources/mac-updater.app/Contents/MacOS/mac-updater -dmg "$1" -name "Second Life Viewer 2"; if [ $? -ne 0 ]; then echo $3 >> "$2"; fi;) &
+(../Resources/mac-updater.app/Contents/MacOS/mac-updater -dmg "$1" -name "Second Life Viewer"; if [ $? -ne 0 ]; then echo $3 >> "$2"; fi;) &
exit 0
diff --git a/indra/viewer_components/updater/scripts/linux/update_install b/indra/viewer_components/updater/scripts/linux/update_install
index 88451340ec..e0505a9f72 100644..100755
--- a/indra/viewer_components/updater/scripts/linux/update_install
+++ b/indra/viewer_components/updater/scripts/linux/update_install
@@ -1,7 +1,7 @@
#! /bin/bash
INSTALL_DIR=$(cd "$(dirname "$0")/.." ; pwd)
export LD_LIBRARY_PATH="$INSTALL_DIR/lib"
-bin/linux-updater.bin --file "$1" --dest "$INSTALL_DIR" --name "Second Life Viewer 2" --stringsdir "$INSTALL_DIR/skins/default/xui/en" --stringsfile "strings.xml"
+bin/linux-updater.bin --file "$1" --dest "$INSTALL_DIR" --name "Second Life Viewer" --stringsdir "$INSTALL_DIR/skins/default/xui/en" --stringsfile "strings.xml"
if [ $? -ne 0 ]
then echo $3 >> "$2"
diff --git a/indra/win_crash_logger/llcrashloggerwindows.cpp b/indra/win_crash_logger/llcrashloggerwindows.cpp
index 170babbb98..36d988ead7 100644..100755
--- a/indra/win_crash_logger/llcrashloggerwindows.cpp
+++ b/indra/win_crash_logger/llcrashloggerwindows.cpp
@@ -370,5 +370,6 @@ bool LLCrashLoggerWindows::cleanup()
sleep_and_pump_messages(3);
}
PostQuitMessage(0);
+ commonCleanup();
return true;
}